php 判断 ip,php ip获取与判断IP分段类

php ip获取与判断IP分段类

class Ip {

/**

* 取IP

* @return string

*/

public static 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;

}

/**

* IP转成整形数值

* @param string $ip IP

* @return int

*/

public static 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是否在一个IP段内

* @param string $startIp 开始IP

* @param string $endIp 结束IP

* @param string $ip IP

* @return bool

*/

public static function isIn($startIp, $endIp, $ip) {

$start = Ip::ipToInt($startIp);

$end = Ip::ipToInt($endIp);

$ipInt = Ip::ipToInt($ip);

$result = false;

if ($ipInt>=$start && $ipInt<=$end) {

$result = true;

}

return $result;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值