как получить информацию о протоколе из пакетов, хранящихся в файле pcap

Я хочу создать цикл переключения (в java), случаи которого представляют собой протокол ip-заголовка пакетов, хранящихся в файле pcap.

Я использую библиотеку jnetpcap для доступа к пакетам.

Я знаю, как получить IP-адрес, номера портов и т. д. из пакета, но я хочу знать, есть ли функция, которая напрямую сообщает мне протокол пакета, т. е. tcp, udp, icmp и т. д. Один также может предложить, знает ли он / она какую-либо другую библиотеку, в которой есть такая функция.

Заранее спасибо.


person Aayush Rathore    schedule 12.11.2014    source источник


Ответы (2)


Существует библиотека jpcap, из которой доступны встроенные функции для извлечения протокола пакета и других деталей.

person user3823859    schedule 12.11.2014
comment
Есть много проблем с использованием библиотеки jpcap. Прежде всего, jpcap недоступен для 64-битной Ubuntu. А местами дается для 64 бит, но ограничение на использование sun-java6-jdk - person Aayush Rathore; 12.11.2014

Я сам нашел ответ:

используя библиотеку JNETPCAP,
Для стека TCP/IP: мы можем получить протоколы на основе номера порта в заголовке tcp

Номера портов, соответствующие различным протоколам, приведены по следующей ссылке: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

Получение протокола в jnetpap:
Пакет PcapPacket =//получить откуда-то

Tcp tcp = новый Tcp();
Ip4 ip = новый IP4();

if(packet.hasHeader(ip)&&packet.hasHeader(tcp)){
if(tcp.source()==80){
System.out.println("Протокол HTTP");
else if(tcp.source==23)
System.out.println("Протокол Telnet");

}

person Aayush Rathore    schedule 24.11.2014