2015-12-02 4 views
1

Пример кода обнюхать пакет является http://opensourceforu.efytimes.com/2011/02/capturing-packets-c-program-libpcap используя another_callback функцию(), когда тип:Как извлечь доменное имя из этого DNS-сообщения?

[[email protected] tcpsnip]# ./sniffer udp 

Packet Count: 1 
Recieved Packet Size: 76 
Payload: 
. . . . . . . .) . ./. . E . . 
> : g @ . @ . . . . . . . . . . 
. . . . 5 . * . . C . . . . . . 
. . . . . . w w w . f a c e b o 
o k . c o m . . . . . 
Packet Count: 2 
Recieved Packet Size: 76 
Payload: 
. . . . . . . .) . ./. . E . . 
> : h @ . @ . . . . . . . . . . 
. . . . 5 . * . . . . . . . . . 
. . . . . . w w w . f a c e b o 
o k . c o m . . . . . 

здесь, как можно извлечь доменное имя (www.facebook.com) от всех этих пакетов (с языком). заранее спасибо.

ответ

2

При написании кода для разбора любого протокола канального уровня у вас есть (использование pcap_datalink(), чтобы узнать значение формата заголовок канального уровня, см the "Link-Layer Header Types" page за то, что они означают), IPv4 или IPv6, UDP и DNS.

Или, возможно, забыв о написании его в C и используя вместо этого Scapy. Захват пакетов относительно прост; Распаковка пакетов сложна, поэтому tcpdump имеет около 750 строк кода, а Wireshark имеет около 5700 строк кода, просто для анализа DNS (который не учитывает строки кода для анализа всех протоколов под DNS). Написание кода для анализа пакетов - значительная работа; использование чужого кода намного меньше.

+0

Благодарим вас за ответ и предложение. Я перейду по ссылке. – Akash009

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