VB.net进阶:VB.net下的Sniffer
原来的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
