pycap
(пример со страницы проекта)
>>> import dpkt, pcap
>>> pc = pcap.pcap()
>>> pc.setfilter('icmp')
>>> for ts, pkt in pc:
... print `dpkt.ethernet.Ethernet(pkt)`
...
Ethernet(src='\x00\x03G\xb2M\xe4', dst='\x00\x03G\x06h\x18', data=IP(src='\n\x00\x01\x1c', dst='\n\x00\x01\x10', sum=39799, len=60, p=1, ttl=128, id=35102, data=ICMP(sum=24667, type=8, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
Ethernet(src='\x00\x03G\x06h\x18', dst='\x00\x03G\xb2M\xe4', data=IP(src='\n\x00\x01\x10', dst='\n\x00\x01\x1c', sum=43697, len=60, p=1, ttl=255, id=64227, data=ICMP(sum=26715, data=Echo(id=512, seq=60160, data='abcdefghijklmnopqrstuvwabcdefghi'))))
^CTraceback (most recent call last):
File '<stdin>', line 1, in ?
File 'pcap.pyx', line 298, in pcap.pcap.__next__
KeyboardInterrupt
>>>
>>> pc.stats()
(4851, 0, 0)
Что вы пробовали? Какую часть вы застряли? Вы хотите использовать 'libpcap' или явные исходные сокеты или другую альтернативу? – abarnert
Я начинаю питон. Я имею в виду пример сокета, чтобы практиковать сетевое программирование. образец импорта, создать объект сокета, установить сокет и порт связывания для прослушивания входящих пакетов. Но эта программа просто может обнюхать порт привязки сокета. Итак, я путаю, как обнюхивать любой исходящий пакет. –
Ну, вам нужно узнать о сырых сокетах (и, возможно, беспорядочном режиме). Прочтите справочные страницы или найдите учебник. Играйте с Wireshark и прочитайте его документацию. Возможно, напишите некоторые основные сценарии, чтобы играть с сырыми сокетами легко. Тогда вы, вероятно, захотите использовать 'libpcap' с одним из своих различных связок Python для вашей реальной программы. – abarnert