scarblac at pino.selwerd.nl
Thu Jun 14 13:03:22 CEST 2001
Jeroen Wolff <jwolff at knoware.nl> wrote in comp.lang.python:
> On Wed, 13 Jun 2001 22:01:08 GMT, "Fredrik Lundh"
> <fredrik at pythonware.com> wrote:
> >(why has decimal to binary conversion suddenly turned into a
> >FAQ the last few months? it wasn't this way in the old days,
> >and I cannot remember ever having to output things as binary
> >numbers in a real-life project... can anyone explain?)
> Me it is to convert an ip addresses like (192.168.2.1/24) into a 32
> bits integer. Also the mask i wil convert to a 32 bit interger. Via
> converting the 4 octets into its binary representation. Put all the 32
> bits in a string and convert it to a interger. After that i can do an
> AND between these two integers and calucate the network part of it.
socket.inet_aton gives the 32 bit network representation of an IP address.
It gives it as a string of 4 bytes though.
Then you could use struct.unpack to put it into an integer.
>>> struct.unpack(">i", socket.inet_aton("127.0.0.1"))
And use & to and them. Then pack, etc.
More information about the Python-list