sorting on IP addresses

Sam Wun swun at esec.com.au
Mon Feb 5 23:42:42 CET 2001


Many thanks.
sam
chris at onca.catsden.net wrote:

> On Tue, 6 Feb 2001, Sam Wun wrote:
>
> > Hi,
> >
> > Does anyone know what is the quickly way to sort a list of IP addresses?
> >
> > ie. 203.21.254.89 should be larger than 203.21.254.9
>
> This may not be the fastest way, but it works, and its elegant :)
>
> import string
>
> def cmp_ipaddress ( ip1, ip2 ):
>         parts1 = map(lambda x:int(x), string.split(ip1,'.'))
>         parts2 = map(lambda x:int(x), string.split(ip2,'.'))
>         comparisons = map ( lambda x,y: cmp(x,y), parts1, parts2 )
>         return reduce ( lambda x,y: x or y, comparisons )
>
> ips = [ '203.21.254.89', '203.21.254.9' ]
>
> ips.sort ( cmp_ipaddress )
>
> print `ips`
>
> -> ['203.21.254.9', '203.21.254.89']
>
>    ("`-/")_.-'"``-._        Ch'marr, a.k.a.
>     . . `; -._    )-;-,_`)  Chris Cogdon <chmarr at furry.org.au>
>    (v_,)'  _  )`-.\  ``-'
>   _.- _..-_/ / ((.'       FC1.3: FFH3cmA+>++C++D++H++M++P++R++T+++WZ++Sm++
> ((,.-'   ((,/   fL               RLCT acl+++d++e+f+++h++i++++jp-sm++

--
Sam Wun                         Firewalls / Security
Senior Software Engineer        Electronic Commerce
eSec Limited                    Phone: +61 3 8371 5376
mailto:swun at eSec.com.au         C++/JAVA/UNIX/OOP/OOD


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20010206/dd442030/attachment.html>


More information about the Python-list mailing list