Home  >  Article  >  Backend Development  >  php能否从外网获取用户的内网ip地址解决思路

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

WBOY
WBOYOriginal
2016-06-13 12:55:311045browse

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
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn