slav0nic's blog

Заметки о python, linux и других занимательных вещах

Python sniffer :)

воть, ради баловства, давно хотел с raw socket'aми побаловаться)
3й параметр в s = socket.socket(…) — тип протокола (6 — tcp, 1 -icmp). можно получить через:

print socket.getprotobyname("tcp")

 

ну и в таком духе работает только под рутом и тока в линуксе (наверно):


import socket
from select import select
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, 6)
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
s_list = []
s_list.append(s)
while len(s_list)>0:
sockets = select(s_list, [], [], 0)
for s_ready in sockets:
print repr(s.recv(1024))

comments(0)

post comment

name *

email

homepage

I'm human *

ауди q7|помощь в сертификации описание iso 9000 - topstroy|лучшие курсы английского языка mp3 курс английского языка

web.py