>백엔드 개발 >PHP 튜토리얼 > php能否从外网获取用户的内网ip地址解决思路

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

WBOY
WBOY원래의
2016-06-13 12:55:311083검색

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으로 문의하세요.