V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
IDCFAN
V2EX  ›  PHP

请问 PHP 获取客户端 IP,有没有获得空值的情况。

  •  
  •   IDCFAN · Feb 12, 2020 · 4727 views
    This topic created in 2278 days ago, the information mentioned may be changed or developed.
    在写 IP 查询,不懂标题里写的情况,在犹豫有没有必要加上空值的判断。
    11 replies    2020-02-13 19:06:40 +08:00
    jugelizi
        1
    jugelizi  
       Feb 13, 2020   ❤️ 1
    打印 $_SERVER 里面哪个值是 IP 的
    qq292382270
        2
    qq292382270  
       Feb 13, 2020   ❤️ 1
    没遇到过
    wslsq
        3
    wslsq  
       Feb 13, 2020   ❤️ 1
    我真遇到过,觉得是亿万分之一的概率
    建议做好 ipv6 兼容就行了
    pickcat
        4
    pickcat  
       Feb 13, 2020   ❤️ 1
    太正常了,你要有“客户端一切内容都是假的”的觉悟~
    手动狗头.gif
    EminemW
        5
    EminemW  
       Feb 13, 2020   ❤️ 1
    “永远不要相信,客户端给的数据"
    nifury
        6
    nifury  
       Feb 13, 2020
    https://stackoverflow.com/questions/18005012/php-serverremote-addr-empty
    居然还真有可能是空
    我觉得还是定义的问题吧,毕竟从理论上来说建立了 http 连接那 socket 四元组就有了吧
    yuzo555
        7
    yuzo555  
       Feb 13, 2020
    REMOTE_ADDR 为空的情况目前没遇到过。
    倒是遇到过 REMOTE_ADDR 返回的是保留地址( 100.64.0.0/16 )的情况,这种基本上是运营商私播 IP 导致的。
    ysc3839
        8
    ysc3839  
       Feb 13, 2020 via Android
    @yuzo555 这种情况是你服务器通信走了运营商内网吧?不然你怎么发数据回去?
    lhx2008
        9
    lhx2008  
       Feb 13, 2020 via Android
    如果是从 socket 拿的不可能为空,但是加预判没什么问题,给一个特殊地址用于排查问题
    xiaoyouqiang
        10
    xiaoyouqiang  
       Feb 13, 2020
    为空的情况下,我没遇到过,获取的方法要多重判断,如果客户端有代理等情况,都要判断。最终下来肯定是有地址的。一个数据包在网络上传输,进过各种设备,肯定会有源地址信息。不过地址信息有可能是伪造的倒是真的
    yuzo555
        11
    yuzo555  
       Feb 13, 2020
    @ysc3839 运营商(我遇到的应该是浙江那边华数广电一类的二级运营商)私播 IP + 云服务商(我的案例是阿里云)的 BGP 线路正好在当地有该运营商的线路。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1062 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 18:35 · PVG 02:35 · LAX 11:35 · JFK 14:35
    ♥ Do have faith in what you're doing.