creating RAW sockets

moijes12 moijes12 at gmail.com
Thu Mar 17 02:28:40 EDT 2011


On Mar 17, 11:14 am, Nobody <nob... at nowhere.com> wrote:
> On Wed, 16 Mar 2011 22:36:07 -0700, moijes12 wrote:
> > Traceback (most recent call last):
> >   File "getsockopt_handler.py", line 7, in ?
> >     send.bind((gethostbyname(gethostname()),50000))
> > socket.error: (99, 'Cannot assign requested address')
>
> Specifying a port number isn't meaningful for a raw socket. At the kernel
> level, the sin_port field in a sockaddr_in structure is used for the IP
> protocol (e.g. 6 for TCP), if it's used at all.

@ Chris :
I am using windows xp sp2.

@ Nobody :
My main aim here is decode the IP header.

I tried the below code and it seems to work.I have shifted to python
2.5 (though I think it was more of a code problem).My main problem is
to decode the IP header

s = socket(AF_INET,SOCK_RAW,IPPROTO_IP)
r = socket(AF_INET,SOCK_RAW,IPPROTO_IP)
r.bind(('',0))
s.connect(('localhost',0))

for i in range(10) :
    s.send(str(i))
    data = r.recvfrom(256)
    hdr = r.getsockopt(SOL_IP, IP_OPTIONS, 20)
    print binascii.hexlify(hdr)

r.close()
s.close()

Here it prints nothing.I'll try some more stuff and will post my
findings in about 30 minutes.

thanks
moijes



More information about the Python-list mailing list