В настоящее время я использую библиотеку pcap для C# и задавался вопросом, есть ли какие-либо встроенные функции для удаления заголовков IP и заголовков TCP/UDP/ECT? Если нет, может ли кто-нибудь опубликовать, как они добились удаления таких заголовков?Пакет регистрации с Pcap для C#
ответ
Вы используете PacketXLib? Я использовал это раньше и нашел достаточно легким для кодирования. Извлечение заголовков достаточно просто, просто зная основные основы протоколов
public const int ETHERNETLEN = 14; // length of ethernet header
public const int IPLEN = 20; // length of ip header
public const int TCPLEN = 20; // length of tcp header
Если предположить, что вы используете ту же библиотеку я сделал, вы можете просто обойти заголовки, чтобы получить к необработанным данным
int dataOffset = ETHERNETLEN + IPLEN + TCPLEN;
string rawData = "";
// Throw all the data into a string first up so we can work with it easier
for (int i = dataOffset; i < aPacket.DataSize; i++)
{
byte nByte = (byte)aPacket.DataArray.GetValue(i);
rawData += Convert.ToChar(nByte);
}
Код, который я смотрю, где я это делал, вероятно, почти год назад, так что немного туманно, что именно я делал. Я делал некоторые обновления http-пакетов, как можно видеть в this question, которые я опубликовал. На самом деле, глядя на эту тему, прошло более года назад, когда я это делал!
Я автор SharpPcap, pcap wrapper/library для C#.
Если вы используете SharpPcap, SharpPcap разбивает пакет на дейтаграммы. Таким образом, вы получите EthernetPacket, содержащий IpPacket, в котором содержится UdpPacket. Если вы хотите только УДП пакета вы можете легко извлечь, что, как:
Packet p = Packet.ParsePacket(rawCapture.LinkLayerType, rawCapture.Data);
var udpPacket = UdpPacket.GetEncapsulated(p);
if(udpPacket != null) { Console.WriteLine("found udp packet '{0}'", udpPacket); }
UdpPacket.GetEncapsulated() пересекают дейтаграммы ищет пакет. Такой же подход работает для всех типов, которые анализируются.
- 1. Отправляйте пакет (PCAP, WLAN, C) в приемник, получая без подключения.
- 2. Пакет хранится неправильно в .pcap файле
- 3. C pcap обнаружение входящих дейтаграмм
- 4. От C++ до C# с файлами Pcap
- 5. Знайте, с какого фильтра pcap мой пакет пришел
- 6. C-программа для разбиения файла pcap
- 7. Pcap library для C# нечетная проблема
- 8. SIP пакет регистрации стека с авторизацией
- 9. ELMAH как пакет/инструмент для библиотеки классов для регистрации исключений
- 10. Как использовать пакет регистрации django?
- 11. Ошибка регистрации для C#
- 12. чтения файла PCAP в C++
- 13. pcap и iptables tussle
- 14. создать файл PCAP для захваченного пакета в c
- 15. чтение файла PCAP в C++
- 16. Код для анализа файла pcap
- 17. Планировочный пакет для C++
- 18. Gstreamer. Несколько pcap для avi
- 19. Convert pcap <-> pcap-ng, pcap-ng tools/libraries
- 20. pcap datalink LINUX_SLL
- 21. Logging ТСР беседы с PCAP
- 22. Изменение PCAP с помощью Python
- 23. Написание pcap-пакетов в структуру с libpcap
- 24. Ограничение регистрации для машины C#
- 25. Программирование с примером PCAP
- 26. Напишите массив байтов, представляющих IP-пакет, в файл pcap
- 27. Ускоренный способ разбора .pcap
- 28. Написание pcap для буфера с Scapy
- 29. Простая программа C для анализа файла pcap, но он не может читать весь файл pcap
- 30. C/PCAP: все значения пакета ARP 0