Jun 29, 2006 18:33
воть, ради баловства, давно хотел с 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))
hack,
python