Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Re: Re: IP Address Sanity

by Wonko the sane (Deacon)
on Dec 27, 2002 at 00:35 UTC ( [id://222442]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: IP Address Sanity
in thread IP Address Sanity

0.0.0.0

is not actually a valid IP address. Which is why I mentioned that my pattern did not catch this (as invalid that is). The pattern matches it, but it should not. :-)

Leading 0's in an IP are also considered to be invalid.

1.003.003.123 is invalid and should be expressed without leading 0's

Best Regards,
Wonko

Replies are listed 'Best First'.
Re: Re: Re: Re: IP Address Sanity
by rob_au (Abbot) on Dec 27, 2002 at 01:15 UTC
    This is all a matter of context - The IP address of 0.0.0.0 is indeed valid if dealing with network routes.

    Furthermore, the aspect of leading zeros is also contextual as an IP address is a 32-bit binary number, the dotted-quad merely a representation of this - It could be rightly argued that the leading zeros are nothing more than another representation of an IP address.

    See ybiC's Don't Use Regular Expressions To Parse IP Addresses! for an excellent treatise on this topic.

     

    perl -le 'print+unpack("N",pack("B32","00000000000000000000001000000111"))'

      Granted, 0.0.0.0 is technically a valid IP address in some situations, as in dealing with network routes, but for most situations it would be considered as something out of the ordinary, which is why I initially mentioned it.

      Also, leading zeros, while also technically valid, are also usually not what one would consider a proper IP address.

      If you say ping 065.1.01.002, you are probably not going to ping what you think you are pinging.
      (at least if you are trying to ping 65.1.1.2).

      As you rightly said though, this is all a matter of context.:-). You must know your data before trying to implement any solution.

      While using a regex for mild IP sanity checking may be ok in some situations,
      I do agree though that as a rule, regexes should NOT be used parse IP addresses, as ybiC's excelent article states.

      Best Regards,
      Wonko

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://222442]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-04-24 08:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found