Split function for host:port in standard lib

Michael Ströder michael at stroeder.com
Tue Aug 26 08:49:10 EDT 2008


Manuel Ebert wrote:
> On Aug 26, 2008, at 1:31 PM, Michael Ströder wrote:
>> Is there a function in the standard lib which can be used to split a 
>> string containg 'host:port' into a tuple (host,port) and also does 
>> this reliably for IPv6 addresses?
 >
> AFAIK port names cannot contain any colons, so python2.5's 'host:port' 
> .rsplit(':') should do the job. On < 2.5 you probably need to do 
> something like
> s = addr.rindex(':')
> host, port = addr[:s], addr[s+1:]

Manuel, thanks for answering. But I already thought about this approach.
I should have mentioned that I'd like to return None for a missing port 
though. Note the :: in the IPv6 addresses.

Examples:
'localhost:389' -> ('localhost',389)
'localhost' -> ('localhost',None)

Examples IPv4 addresses:
'127.0.0.1' -> ('127.0.0.1',None)

Examples IPv6 addresses:
'::1:389' -> ('::1',389)
'::1' -> ('::1',None)

Ciao, Michael.



More information about the Python-list mailing list