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

解决方案 »

  1.   

    有个函数   你可以试试看 
    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; 
    }
      

  2.   

    看一下tcp原理你就知道原因了.
      

  3.   

    我倒是并不是想做这样的功能,我是在想类似的cnzz这样的统计,他的独立访客是怎么判断的,当然可能人家并不是用php来做的,但是如果用php来做的话要怎么弄呢,既然不能获取内网的ip,那要判断独立访客是不是就只能是通过cookie什么的了?看来不能完全依靠一门语言!
      

  4.   

    判断独立访客只能是通过cookie
      

  5.   

    独立访客数则相当于带身份证参观展览会的访问人数,每一个出示身份证参观展览的人,无论出入几次,都只计作一次独立访问。这里所说的“身份证”,在网络上就是访客的IP地址或Cookie。
      

  6.   

    独立访客是cookies+时间去判断的。
    会生成一个cookies到本地,然后要使用p3p了。
    然后每一天的0时起,重新算一个uv