ID: 21277
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
-Status: Won't fix
+Status: Feedback
Bug Type: Feature/Change Request
Operating System: Linux
PHP Version: 4.2.3
New Comment:
The code cannot only be implemented in one regex, but the ones show
above, using substr_count() or preg_match, are buggy as they support
addresses of the form 999.999.999.999, which is clearly incorrect.
A better regex will have to take into account that IP v4 addresses
range from 0.0.0.0 to 255.255.255.255
Don't see a real driving need to implement as part of the language.
Previous Comments:
------------------------------------------------------------------------
[2002-12-30 00:32:19] [EMAIL PROTECTED]
Can be done with a oneliner:
(something along the lines of:)
if (preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\$/",
$ip) {
/* It is an IP */
}
Not really worth the trouble to implement it as a PHP code feature.
Derick
------------------------------------------------------------------------
[2002-12-29 18:54:21] [EMAIL PROTECTED]
function is_ip($str) // Returns True if the given string is a IP
address
{
if ((substr_count($str, ".") != 3) or (empty($str))) { return false; }
$ip_array = explode(".", $str);
for ($i = 0; $i < count($ip_array); $i++)
{
if ((strlen($ip_array[$i]) != 3) or (!is_numeric($ip_array[$i])))
{
return false;
}
}
return true;
}
I think that this function could be useful for many PHP coders :)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=21277&edit=1