Ip format
luca72
lucaberto at libero.it
Thu Nov 20 11:13:33 EST 2008
Many thanks for your help
I have also find the correct socket function:
ip 1578568204
ip = socket.inet_aton(ip)
ip_dot = socket.inet_ntoa(ip)
Thanks Luca
On 20 Nov, 12:36, Tim Chase <python.l... at tim.thechases.com> wrote:
> > Hello i have this ip 1578568204
>
> > how socket function i can have the ip dotted-quad string?
>
> > i have try socket.inet_aton get no error but only this ^ETB FF
>
> I've got the following program I threw together for one of my
> junior developers:
>
> from sys import argv, exit
> if len(argv) <> 2:
> print "Usage:"
> print "\t%s <ip_address>" % argv[0]
> print "\t%s <int>" % argv[0]
> print "\nThe first form translates a dotted-quad format into
> int format"
> print "\nThe second form translates from int form to a
> dotted-quad"
> exit(1)
>
> src = argv[1]
>
> if src.count('.') == 3:
> a,b,c,d = map(lambda s: 0xff and int(s), src.split('.'))
> print (
> (a << (8*3)) |
> (b << (8*2)) |
> (c << (8*1)) |
> d)
> else:
> i = int(src)
> a = 0xff & (i >> (8*3))
> b = 0xff & (i >> (8*2))
> c = 0xff & (i >> (8*1))
> d = 0xff & (i)
> print '%s.%s.%s.%s' % (a,b,c,d)
>
> The code you're looking for is in the bottom "else:" clause.
> Yes, that could be optimized to just "c = 0xff & (i >> 8)" in the
> 3rd case, but it made it easier for my junior developer to
> understand what was going on.
>
> There might be some library function to do these transformations
> for you, but after a quick look, I didn't find anything.
>
> -tkc
More information about the Python-list
mailing list