所以这是我一直在使用的问题,我有一个服务器套接字,我需要接收原始数据。我们的想法是捕获原始数据包,以便根据其标题数据对其进行分析和处理。 我一直在做这么多的调试程序和谷歌搜索,阅读了很多文章,但我还没有找到办法让这个工作。
到目前为止,我主要陷入了Listen()命令。 Init代码如下:
s1 = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Raw, Net.Sockets.ProtocolType.IPv4)
Dim Lcip As New Net.IPAddress({192, 168, 1, 5})
Dim ep As New Net.IPEndPoint(Lcip, 155)
Dim maxcon As Int32 = 500
s1.SetSocketOption(Net.Sockets.SocketOptionLevel.IP, Net.Sockets.SocketOptionName.HeaderIncluded, True)
s1.Bind(ep)
s1.Listen(Int32.MaxValue)
s2 = s1.Accept
正如我所说,Listen()命令是我的程序跳转的地方,是的,我尝试了正常的值,但无济于事。
任何想法?
目标:接收包含完整标头(IP,MAC,chksum,SYN / ACK等)的数据包数据 次要目标:从任何IP接收,并指定一个专门监控的适配器(即只有wifi,或只有有线局域网)
答案 0 :(得分:0)
尝试将套接字类型更改为IP4。以下是对我有用的东西。希望它有所帮助。
listensocket = New Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork,Net.Sockets.SocketType.Raw, Net.Sockets.ProtocolType.IP4 )
listenSocket.ReceiveBufferSize = 200
Dim Lcip As IPAddress = ipaddress.any
Dim ep As New Net.IPEndPoint(Lcip,155)
listenSocket.Bind(EP)
Dim maxcon As Int32 = 500
“s1.listen(maxcon)
虽然不是假的
Dim bytes() As Byte = New Byte(0 To 200) {}
listenSocket.Receive(bytes)
结束时