Re: ipv6 validation

2006-04-02 Thread Christos Georgiou
On 30 Mar 2006 11:40:08 -0800, rumours say that [EMAIL PROTECTED]
might have written:

>thanks a lot for this solution.
>Next thing: how may i find out that that address is multicast one? is
>there some easy possibility or i have to use regex now?

To quote a Google reply:

"IPv6 multicast addresses are distinguished from unicast addresses by the
value of the high-order octet of the addresses: a value of 0xFF (binary
) identifies an address as a multicast address; any other value
identifies an address as a unicast address."
-- 
TZOTZIOY, I speak England very best.
"Dear Paul,
please stop spamming us."
The Corinthians
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipv6 validation

2006-03-30 Thread jiri . juranek
thanks a lot for this solution.
Next thing: how may i find out that that address is multicast one? is
there some easy possibility or i have to use regex now?

thanks

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: ipv6 validation

2006-03-18 Thread Roy Smith
In article <[EMAIL PROTECTED]>,
 [EMAIL PROTECTED] wrote:

> Hello,
> is there any common function for validation if string contains valid ip
> address(both ipv4 and ipv6)? Or does sb wrote some regular expression
> for this?
> thanks
> J

Look at socket.inet_pton().  First check to make sure ipv6 is supported on 
your platform, then pass your string to inet_pton() inside of a try block 
to catch socket.error.  It would have been nicer is a more specific 
exception was thrown, but this seems to work.  For example:

>>> socket.has_ipv6  
True
>>> socket.inet_pton(socket.AF_INET6, "8001::1244")
'\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12D'
>>> socket.inet_pton(socket.AF_INET6, "8001:xyz:1244")
Traceback (most recent call last):
  File "", line 1, in ?
socket.error: illegal IP address string passed to inet_pton
>>> 

Be aware that IPv6 support is messy on Windows.  For example, if you're 
running Win 2003 (or XP, I would guess), the OS does support IPv6 (and thus 
socket.has_ipv6 will probably bet set to True) but the IPv6 libraries don't 
actually get loaded until you configure an IPv6 address on some interface.  
This means things like inet_pton() will fail, which is truly bletcherous 
and evil.

Writing a regex to recognize valid IPv6 presentation strings is not 
trivial.  Keep in mind that you're allowed exactly 0 or 1 "::" occurrances, 
and things like "::192.168.11.1" are legal (I don't remember if I got 
the semantics right there, but the syntax is legal).
-- 
http://mail.python.org/mailman/listinfo/python-list


ipv6 validation

2006-03-18 Thread jiri . juranek
Hello,
is there any common function for validation if string contains valid ip
address(both ipv4 and ipv6)? Or does sb wrote some regular expression
for this?
thanks
J

-- 
http://mail.python.org/mailman/listinfo/python-list