php如何获取真实IP

张学良友 发布于 2016/07/26 22:00
阅读 959
收藏 0
PHP
试了网上很多代码都不行,但是ip138每次都能显示我的真实ip。特求各位大侠支招。

比如我用一般的php获得的我的ip地址是:60.55.8.229 - 浙江宁波

但是ip38.com获取的我的IP地址是:[42.196.192.67] 来自:上海市 长城宽带  (ip138才是正确的)


网上很多代码不外乎都是用以下三种方式获取,这三种方式无法获得正确的ip.特求各位大侠支招。

$_SERVER["HTTP_CLIENT_IP"];

$_SERVER["REMOTE_ADDR"];

$_SERVER["HTTP_X_FORWARDED_FOR"];


加载中
1
b
beastxiao
这个问题已经回答几次了。。。,你自己在命令行ping一下,或者打开路由看就知道了,应该是60.55.那个,这个IP其实并不是你真是的IP,真实的是42.196那个,原因是运营商那里做了处理,你本地无论怎么都是取不到真实的IP的。像我用的电信的,就直接去官网填单,要求获取真实IP,等他处理就可以了。
张学良友
张学良友
回复 @beastxiao : 不是你说的这样,如果是电信就能正确的取到ip
b
beastxiao
回复 @张学良友 : 这个跟平时用局域网IP是一样的,你本机IP 192.168.*.*这样的私有IP却能访问互联网,到路由那里会使用正确的公网IP的,不光是ip138,你访问的任意网站都能获取你正确的IP地址
张学良友
张学良友
那为什么ip138网站能获取得到真实IP呢?
0
聽雨人
聽雨人
你可能用了什么混合带宽的吧,你可以把这三个值打印出来。


张学良友
张学良友
这三种方式取不到正确的值的,测试时当然有打印出来了,不然怎么知道不准确呀。
0
一如当初
一如当初
现在的宽带都是个大局域网,你本地看到的IP只是运营商分配给你的它们网内的IP地址,并非公网IP。你要获取公网IP地址,必须要去访问像ip138或类似api接口来获取你的公网IP地址。
0
小川先森
小川先森
你确定你的外网ip?
张学良友
张学良友
并不是所有的都这样,像电信的基本上都准确的。
张学良友
张学良友
我就是要取到访客的真实IP,我发现这不是php的问题,而是apache服务器,方面的问题了。apache日志显示的也不是真实的IP
返回顶部
顶部