日期:2014-05-17  浏览次数:20430 次

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

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


function getIP() { 

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; 
}


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

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

就好比有的人非要想知道用户上传的文件在用户机器上的位置一样
既然你不可能从外部访问到,知道了又有什么用呢?
------解决方案--------------------
这个除了黑了对方主机一般没办法吧
------解决方案--------------------
判断独立访客只能是通过cookie
------解决方案--------------------
独立访客是cookies+时间去判断的。
会生成一个cookies到本地,然后要使用p3p了。
然后每一天的0时起,重新算一个uv