Как получить подробности протокола из пакетов, хранящихся в файле pcap
Я хочу сделать цикл коммутации (в Java), чьи случаи являются протоколом заголовка ip пакетов, хранящихся в файле pcap.
Я использую библиотеку jnetpcap для доступа к пакетам.
Я знаю, как получить IP-адрес, номера портов и т. Д. Из пакета, но я хочу знать , существует ли функция, которая напрямую сообщает мне протокол пакета, например, tcp, udp, icmp и т. Д. Можно также предложить, если он / она знает любую другую библиотеку, которая имеет такую функцию.
Заранее спасибо.
2 ответа
Я нашел ответ сам:
используя библиотеку JNETPCAP,
Для стека TCP/IP: мы можем получить протоколы на основе номера порта заголовка tcp
Номера портов, соответствующие различным протоколам, приведены по следующей ссылке: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml
Получение протокола в jnetpap:
PcapPacket packet = // получить откуда-то
Tcp tcp = new Tcp ();
Ip4 ip = новый IP4();
если (packet.hasHeader(ф)&&packet.hasHeader(TCP)){
если (tcp.source () == 80) {
System.out.println ("протокол HTTP");
еще, если (tcp.source == 23)
System.out.println ("Протокол Telnet");
}
Существует библиотека jpcap, из которой доступны встроенные функции для извлечения протокола пакета и других деталей.