2013-04-09 3 views
12

Я хочу нюхать все HTTP-пакеты в моем компьютере с помощью питона (version2.6 .. это возможно? Я могу это сделать с scapy или без других внешних модулей?Как обманывать HTTP-пакеты в python?

+5

Касательно закрытия голосов, я думаю, что это хороший вопрос. Он просит технику решить конкретную проблему, в чем проблема? –

+0

Вы посмотрели на это? (быстро, прежде чем этот вопрос будет закрыт ...) http://wiki.wireshark.org/Python – zenpoy

+0

Возможный дубликат [HTTP-запрос и проверка ответа с помощью Python] (http://stackoverflow.com/questions/15663379/http- request-and-response-inspection-with-python) –

ответ

5

Scrapy только для извлечения данных из веб-страниц или аналогичные структурированные документы.

чтобы на самом деле читать пакеты, поступающие от NIC ваш вариант лучше производительность, вероятно, будет использовать C/C++ API, который имеет питона привязок.

Например WireShark имеет Python API.

Pcapy - это модуль для захвата пакетов с использованием libpcap.

LibPCAP - это библиотека захвата пакетов, написанная для TCPDUMP, а также используемая в WireShark.

Другой вариант - попробовать модуль pppp dpkt. Вот хороший write up. Вот example, используя dpkt и pcap, чтобы обманывать HTTP-пакеты.

EDIT: oops, I misread scapy. Спасибо, корень!

Как вы упомянули, Scapy - это еще один модуль python, который также использует LibPCAP. У этого documentation есть пример обнюхивания.

Если у вас возникли проблемы с запуском на Python 2.7, ознакомьтесь с этим post.

+3

'scapy'! =' scrapy' – root

+0

It похоже, что API Python для WireShark сейчас нет. PyShark кажется наиболее активным подходом к этому сейчас, как отмечено в ответе ниже. – nealmcb

2

pypcap, https://code.google.com/p/pypcap/ упрощенный объектно-ориентированный Python модуль расширения для Libpcap - текущая версия tcpdump.org, наследие версия доставка с некоторыми из BSD операционных систем, а также порт для WinPcap Windows.This версия для Windows . И если вы используете # nix, просто установите pcap и dpkt модуль.

+0

Хорошо, если я хочу использовать модули dpkt & pcap для обнюхивания, как я могу нюхать с ними HTTP-пакеты? Я буду рад получить пример .. Я видел пример, как обнюхать с этими модулями пакеты icmp, но не пакеты HTTP. – Aviv

2

https://github.com/KimiNewt/pyshark

Python обертка для tshark

Использование:

>>> capture = pyshark.LiveCapture(interface='eth0') 
>>> capture.sniff(timeout=50) 
>>> capture 
<LiveCapture (5 packets)> 
>>> capture[3] 
<UDP/HTTP Packet> 

for packet in capture.sniff_continuously(packet_count=5): 
    print 'Just arrived:', packet