2014-01-29 5 views
0

Итак, вот моя проблема, с которой я работал, у меня есть сокет сервера, с которым мне нужно получить необработанные данные. Идея состоит в том, чтобы захватить необработанные пакеты, чтобы их можно было анализировать и обрабатывать в соответствии с их данными заголовка. Я делал так много процедур отладки и поиска Google и читал так много статей, но мне еще предстоит найти способ заставить это работать.Raw Socket в VB.net для отправки и получения

До сих пор я в основном попадал в команду 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-адреса и указать адаптер для мониторинга (т. Е. Только Wi-Fi или только wired lan)

ответ

0

Попробуйте изменить тип гнезда на IP4. Ниже приводится то, что сработало для меня. Надеюсь, поможет.

listensocket = Новый Net.Sockets.Socket (Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Raw, Net.Sockets.ProtocolType.IP4)

listenSocket.ReceiveBufferSize = 200

Dim LCIP Как IPAddress = ipaddress.any

Dim ер As New Net.IPEndPoint (LCIP, 155)

listenSocket.Bind (ер)

дим maxcon В Int32 = 500

«s1.listen (maxcon)

, а не ложно

Dim bytes() As Byte = New Byte(0 To 200) {} 

listenSocket.Receive(bytes) 

Конец в то время как

 Смежные вопросы

  • Нет связанных вопросов^_^