php ip函数过滤危险,PHP IP过滤

function testIP($ip) {

if($ip == '*' || $ip == '*.*.*.*') {

return TRUE;

}

if($_SERVER['REMOTE_ADDR'] == $ip) {

return TRUE;

}

$mask = str_replace('.*', '', $ip);

return strpos($_SERVER['REMOTE_ADDR'], $mask) === 0;

}

$_SERVER['REMOTE_ADDR'] = '70.69.68.67';

$ip = '1.11.1.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '2.34.9.1';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '70.11.*.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '70.69.68.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '70.69.*.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '70.*.*.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '*.*.*.*';

echo "Is $ip good: "; var_dump(testIP($ip));

$ip = '*';

echo "Is $ip good: "; var_dump(testIP($ip));

将输出:

Is 1.11.1.* good: bool(false)

Is 2.34.9.1 good: bool(false)

Is 70.11.*.* good: bool(false)

Is 70.69.68.* good: bool(true)

Is 70.69.*.* good: bool(true)

Is 70.*.*.* good: bool(true)

Is *.*.*.* good: bool(true)

Is * good: bool(true)

如果您正在寻找特定的ip(无通配符)检查,可以使用:

function is_private_ip($ip) {

return filter_var($ip, FILTER_VALIDATE_IP) != FALSE;

}

的var_dump(is_private_ip(’82 .237.3.3′ ));的var_dump(is_private_ip( ‘748.1234.5.4’));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值