Hi all. I'm trying to make a simple icmp sniffer by using SOCK_RAW.
The code below works but ONLY if I first use the sendto() function.
Does anybody knows why?
Regards
from socket import *
import select
def recv():
while 1:
if s in select.select([s],[],[],99)[0]:
reply = s.recvfrom(2000 )[0]
print reply
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
s.setsockopt(IP PROTO_IP, IP_HDRINCL, 1)
s.sendto('test' , ('127.0.0.1', 0)) # without this it doesn't work.
recv()
The code below works but ONLY if I first use the sendto() function.
Does anybody knows why?
Regards
from socket import *
import select
def recv():
while 1:
if s in select.select([s],[],[],99)[0]:
reply = s.recvfrom(2000 )[0]
print reply
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
s.setsockopt(IP PROTO_IP, IP_HDRINCL, 1)
s.sendto('test' , ('127.0.0.1', 0)) # without this it doesn't work.
recv()
Comment