首页 >后端开发 >php教程 > php能否从外网获取用户的内网ip地址解决思路

php能否从外网获取用户的内网ip地址解决思路

WBOY
WBOY原创
2016-06-13 12:55:311058浏览

php能否从外网获取用户的内网ip地址
假设用户通过路由等设备连接上网,能不能通过php来获得访问用户的内网ip,即198.xxx.xxx.xxx这样的ip。这里是指外网的用户访问,不是获取服务器主机所在的内网!

ip
------解决方案--------------------
有个函数   你可以试试看 

<br />
function getIP() { <br />
<br />
	if (@$_SERVER["HTTP_X_FORWARDED_FOR"]) <br />
	$ip = $_SERVER["HTTP_X_FORWARDED_FOR"]; <br />
	else if (@$_SERVER["HTTP_CLIENT_IP"]) <br />
	$ip = $_SERVER["HTTP_CLIENT_IP"]; <br />
	else if (@$_SERVER["REMOTE_ADDR"]) <br />
	$ip = $_SERVER["REMOTE_ADDR"]; <br />
	else if (@getenv("HTTP_X_FORWARDED_FOR"))<br />
	$ip = getenv("HTTP_X_FORWARDED_FOR"); <br />
	else if (@getenv("HTTP_CLIENT_IP")) <br />
	$ip = getenv("HTTP_CLIENT_IP"); <br />
	else if (@getenv("REMOTE_ADDR")) <br />
	$ip = getenv("REMOTE_ADDR"); <br />
	else <br />
	$ip = "Unknown"; <br />
	return $ip; <br />
}<br />
<br />

------解决方案--------------------
看一下tcp原理你就知道原因了.
------解决方案--------------------
一般不可以(除非内网的出口网关被设置成了“透明网关”)

不过就算是知道了,又有什么意义呢?
你又不可能从服务器访问回去!

就好比有的人非要想知道用户上传的文件在用户机器上的位置一样
既然你不可能从外部访问到,知道了又有什么用呢?
------解决方案--------------------
这个除了黑了对方主机一般没办法吧
------解决方案--------------------
判断独立访客只能是通过cookie
------解决方案--------------------
独立访客是cookies+时间去判断的。
会生成一个cookies到本地,然后要使用p3p了。
然后每一天的0时起,重新算一个uv
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn