IDCFAN
V2EX  ›  PHP

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

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