filter_var
函数if (filter_var(
$_SERVER['REMOTE_ADDR'],
FILTER_VALIDATE_IP,
FILTER_FLAG_NO_PRIV_RANGE|FILTER_FLAG_NO_RES_RANGE
)) {
header('HTTP/1.0 403 Forbidden');
die('禁止外网访问');
}
ip2long
的值function ip_is_private($ip){
$pri_addrs = array(
'10.0.0.0|10.255.255.255',
'172.16.0.0|172.31.255.255',
192.168.0.0|192.168.255.255',
'169.254.0.0|169.254.255.255',
'127.0.0.0|127.255.255.255'
);
$long_ip = ip2long($ip);
if($long_ip != -1) {
foreach($pri_addrs AS $pri_addr) {
list($start, $end) = explode('|', $pri_addr);
// IF IS PRIVATE
if($long_ip >= ip2long($start) && $long_ip <= ip2long($end))
return (TRUE);
}
}
return (FALSE);
}
>>
进行判断function ip_is_internal($ip) {
$ip = ip2long($ip);
if (!$ip) {
return false;
}
$net_local = ip2long('127.255.255.255') >> 24; //127.x.x.x
$net_a = ip2long('10.255.255.255') >> 24; //A类网预留ip的网络地址
$net_b = ip2long('172.31.255.255') >> 20; //B类网预留ip的网络地址
$net_c = ip2long('192.168.255.255') >> 16; //C类网预留ip的网络地址
return $ip >> 24 === $net_local || $ip >> 24 === $net_a
|| $ip >> 20 === $net_b || $ip >> 16 === $net_c;
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。