>
>>
>>>
>>>>
>>>> I chose to check for only ':' to decide if its a IPv6 addr
because it
>>>> doesnt make sense to be partial towards '.' What if someone
>>>> specifies a
>>>> host name like 12:12;12,12 or 23:23,23,23 ? A '.' in an IPv6 addr
>>>> is as
>>>> bad as any other invalid char.
>>>
>>> '.' is valid in IPv6 addr. But yes, ':' is mandatory in
IPv6, and
>>> forbidden in IPv4, so it makes a good distinguishing test between the
>>> two families.
>>
>> So, are you suggesting to validate IPv4 only and that too based on the
>> absence of ':' and presence of '.'? Does that really suffice to
>> validate
>> an IPv4 since any other special character is also an invalid separator
>> for IPv4 ?
>
> Ultimately, you want to accept both types of IP addresses. I was just
> replying to your quote about '.' not being valid in IPv6 as being an
> incorrect statement; I don't really know what the best separator
> character is that you want to be using in this context, because I
> haven't been following the original conversation closely enough. You
> should also realize that hostnames cannot contain ':' or ';' (I'm
not
> sure about ','), so your question about someone setting a hostname to
> '12:12;12,12' to confuse the parser is not worth worrying about.
>
Ok, I understand that IPv6 can have a '.' though ':' is mandatory in
IPv6, and the current code should work for IPv6 addresses with a . as
well. However, I am not sure if we need to validate the user provided
hostname/IPv4/IPv6 addresses if it contains an invalid separator.
Also, the parsing code for IPv4 should work for hostnames as well. By
talking about IP address with diff separators, I just meant to say
that presence of . and absence of : doesnt necessarily mean a valid
IPv4 address since presence of other invalid separator would also mean
an invalid IPv4 address.
I didn't knew '.' is allowed in IPv6, if thats the case, then i take
back my suggestion here :)