note 21161 added to function.ip2long
| From: | slee at ile-maurice dot com | Date: | Wed, 01 May 2002 14:33:00 +0000 |
| Subject: | note 21161 added to function.ip2long | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-30049@lists.php.net to get a copy of this message | ||
Inspired from oliver@samera.com.py above.
// validip($ip)
// check if it is a valid public ipv4 address
// slee @ ile-maurice.com
function validip ($ip) {
if(!is_string($ip))
{
return false;
}
$ip_long = ip2long($ip);
$ip_reverse = long2ip($ip_long);
if ($ip != $ip_reverse)
{
return false;
}
// reserved IANA IPv4 addresses
// http://www.iana.org/assignments/ipv4-address-space
$reserved_ips = array (
array('10.0.0.0','10.255.255.255'),
array('127.0.0.0','127.255.255.255'),
array('176.16.0.0','176.16.255.255'),
array('192.168.0.0','192.168.255.255'),
array('0.0.0.0','2.255.255.255'),
array('23.0.0.0','23.255.255.255'),
array('27.0.0.0','27.255.255.255'),
array('31.0.0.0','31.255.255.255'),
array('36.0.0.0','37.255.255.255'),
array('39.0.0.0','39.255.255.255'),
array('41.0.0.0','42.255.255.255'),
array('58.0.0.0','60.255.255.255'),
array('82.0.0.0','95.255.255.255'),
array('96.0.0.0','126.255.255.255'),
array('169.254.0.0','169.254.255.255'),
array('192.0.2.0','192.0.2.255'),
array('197.0.0.0','197.255.255.255'),
array('221.0.0.0','223.255.255.255'),
array('240.0.0.0','255.255.255.255')
);
foreach ($reserved_ips as $r)
{
$min = ip2long($r[0]);
$max = ip2long($r[1]);
if (($ip_long >= $min) && ($ip_long <= $max))
{
return false;
}
}
return true;
}
--
http://www.php.net/manual/en/function.ip2long.php
http://master.php.net/manage/user-notes.php?action=edit+21161
http://master.php.net/manage/user-notes.php?action=delete+21161
http://master.php.net/manage/user-notes.php?action=reject+21161