php ip获取与判断IP分段类
类IP {
/**
* 获取IP
* @return 字符串
*/
公共静态函数 get() {
['HTTP_CLIENT_IP']!='未知') {
$ip = $_SERVER['HTTP_CLIENT_IP'];
['HTTP_X_FORWARDED_FOR']!='未知') {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} 其他 {
$ip = $_SERVER['REMOTE_ADDR'];
}
返回 $ip;
}
/**
* IP转成整形数值
* @param string $ip IP
* @return int
*/
公共静态函数 ipToInt($ip) {
$ips = 爆炸('.',$ip);
if (count($ips)>=4) {
*256 $ips[3];//根据IP,a,b,c类进行计算
} 其他 {
throw new Exception('ip 错误');
}
返回 $int;
}
/**
* 判断IP是否在一个IP段内
* @param string $startIp 开始IP
* @param string $endIp 结束IP
* @param string $ip IP
* @return bool
*/
公共静态函数 isIn($startIp, $endIp, $ip) {
$start = Ip::ipToInt($startIp);
$end = Ip::ipToInt($endIp);
$ipInt = Ip::ipToInt($ip);
$结果 = false;
if ($ipInt>=$start && $ipInt
$结果 = true;
}
返回$结果;
}