作者:碎蜂CYM夜一 | 来源:互联网 | 2018-07-16 16:43
原理根据用户给出的ip,再获取当前IP然后转换成数字型的,根据IP,a,b,c类进行计算,根据进行对比就OK
代码如下 |
|
$start =ipToInt('192.168.1.110');
$end = ipToInt('192.168.0.1');
$ipInt = ipToInt( get() );
$result = false;
if ($ipInt>=$start && $ipInt<=$end) {
$result = true;
}
if( $result )
{
echo '在同一网段';
}
else
{
echo '不在同一网段';
} |
//不在同一网段
/*
* IP转成整形数值
* @param string $ip IP
* @return int
*/
代码如下 |
|
function ipToInt($ip) {
$ips教程 = explode('.',$ip);
if (count($ips)>=4) {
$int = $ips[0]*256*256*256+$ips[1]*256*256+$ips[2]*256+$ips[3];//根据IP,a,b,c类进行计算
} else {
throw new Exception('ip is error');
}
return $int;
} |
/*
* 获取用户IP地址 192.68.0.110
*/
代码如下 |
|
function get() {
if ($_SERVER['HTTP_CLIENT_IP'] && $_SERVER['HTTP_CLIENT_IP']!='unknown') {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ($_SERVER['HTTP_X_FORWARDED_FOR'] && $_SERVER['HTTP_X_FORWARDED_FOR']!='unknown') {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
/*
|
本站原创转载注明来源www.111cn.net
*/