【发布时间】:2014-07-25 10:55:48
【问题描述】:
我可以检查一个 ip 是否在私有网络中吗?
<?php
function isLocalIPAddress($IPAddress)
{
return ( !filter_var($IPAddress, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) );
}
var_dump( isLocalIPAddress('127.0.0.1') ); // false
var_dump( isLocalIPAddress('192.168.1.20') ); // true
var_dump( isLocalIPAddress('64.233.160.0') ); // false
为什么isLocalIPAddress('127.0.0.1') 给false 而不是true?
127.0.0.1不是私网IP吗?
更新
我使用的解决方案:
<?php
function isLocalIPAddress($IPAddress)
{
if( strpos($IPAddress, '127.0.') === 0 )
return true;
return ( !filter_var($IPAddress, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE ) );
}
【问题讨论】:
标签: php networking ip