php读取ipv4,PHP如何只获得ipv4的地址

PHP如何只获得ipv4的地址

deb71f33f384d0545d8176f741fdfbc4.png

PHPzhong2017-04-10 17:00:22 0 1 149

希望根据不同的ip地址段,网站显示不同的内容。目前针对ipv4的地址段做了限制,但是有些客户端访问是通过ipv6的地址访问,做的限制就没有用了。所以我想问一下,有没有可能通过php只获取ipv4的代码。

目前使用的php获取ip的代码如下:

function check_ip($str)

{

return preg_match('/""A((([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))"".){3}(([0-9]?[0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))""Z/',$str)>0;

}

function getIP($isHeader=false)

{

if($isHeader)

{

if (isset($_SERVER['HTTP_CLIENT_IP']) && check_ip($_SERVER['HTTP_CLIENT_IP']))

{

return $_SERVER['HTTP_CLIENT_IP'];

}

else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && check_ip($_SERVER['HTTP_X_FORWARDED_FOR']))

{

return $_SERVER['HTTP_X_FORWARDED_FOR'];

}

}

if (isset($_SERVER['REMOTE_ADDR']) && check_ip($_SERVER['REMOTE_ADDR']))

{

return $_SERVER['REMOTE_ADDR'];

}

else

{

return 'unknown';

}

}

29023.html

回答

1

0

分享

全部回复 (1)

d53b6ceed3a48170b5b7624cd335d950.png

大家讲道理2017-04-10 17:02:221楼

你看一下这个能不能解决你的问题吧,就是可以根据用户环境获取IP地址

function getIP() /*获取客户端IP*/

{

if (@$_SERVER["HTTP_X_FORWARDED_FOR"])

$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];

else if (@$_SERVER["HTTP_CLIENT_IP"])

$ip = $_SERVER["HTTP_CLIENT_IP"];

else if (@$_SERVER["REMOTE_ADDR"])

$ip = $_SERVER["REMOTE_ADDR"];

else if (@getenv("HTTP_X_FORWARDED_FOR"))

$ip = getenv("HTTP_X_FORWARDED_FOR");

else if (@getenv("HTTP_CLIENT_IP"))

$ip = getenv("HTTP_CLIENT_IP");

else if (@getenv("REMOTE_ADDR"))

$ip = getenv("REMOTE_ADDR");

else

$ip = "Unknown";

return $ip;

}

?>

参考 非常实用的PHP常用函数汇总的第10点,有兴趣的话你可以看一下

29023.html

回复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值