VB.net进阶:VB.net下的Sniffer

时间:2007-11-2 15:39:25  来源:编程网  作者:asp.net  责任编辑:aspx

原来的C#代码在这里:

http://www.techblog.idv.tw/Blog/zion/archive/2004/09/14/148.aspx

改写后的代码分成两部分:Receiver,用来侦听;PacketInfo,对数据包进行简单的解析。

数据包的内容是通过Receiver的DataReceived事件返回来的。

每个函数都不长,容易看懂,注释我就……咳咳。

Imports System.Net

Imports System.Net.Sockets

Imports System.Threading

Public Class Receiver

Dim buffer As Byte()

Dim mvarBufferLength As Integer = 4096

Dim sck As Socket

Dim thrReceive As Thread

Dim mvarStopOne As Boolean = False

Public Event DataReceived(ByVal data As Byte(), ByVal Length As Integer)

Sub New()

ReDim buffer(mvarBufferLength)

sck = New Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP)

sck.Blocking = False

sck.Bind(New IPEndPoint(Dns.GetHostByName(Dns.GetHostName).AddressList(0), 0))

If Not SetSockoption() Then Throw New Exception("Unable to setup socket options")

End Sub

Public Property BufferLength() As Integer

Get

Return mvarBufferLength

End Get

添加到各大书签: