V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
IDCFAN
V2EX  ›  PHP

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

  •  
  •   IDCFAN · 2020-02-12 23:57:57 +08:00 · 3928 次点击
    这是一个创建于 1781 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在写 IP 查询,不懂标题里写的情况,在犹豫有没有必要加上空值的判断。
    11 条回复    2020-02-13 19:06:40 +08:00
    jugelizi
        1
    jugelizi  
       2020-02-13 00:07:50 +08:00   ❤️ 1
    打印 $_SERVER 里面哪个值是 IP 的
    qq292382270
        2
    qq292382270  
       2020-02-13 00:12:36 +08:00   ❤️ 1
    没遇到过
    wslsq
        3
    wslsq  
       2020-02-13 00:21:47 +08:00   ❤️ 1
    我真遇到过,觉得是亿万分之一的概率
    建议做好 ipv6 兼容就行了
    pickcat
        4
    pickcat  
       2020-02-13 00:24:27 +08:00   ❤️ 1
    太正常了,你要有“客户端一切内容都是假的”的觉悟~
    手动狗头.gif
    EminemW
        5
    EminemW  
       2020-02-13 00:33:28 +08:00   ❤️ 1
    “永远不要相信,客户端给的数据"
    nifury
        6
    nifury  
       2020-02-13 02:30:14 +08:00
    https://stackoverflow.com/questions/18005012/php-serverremote-addr-empty
    居然还真有可能是空
    我觉得还是定义的问题吧,毕竟从理论上来说建立了 http 连接那 socket 四元组就有了吧
    yuzo555
        7
    yuzo555  
       2020-02-13 03:24:23 +08:00
    REMOTE_ADDR 为空的情况目前没遇到过。
    倒是遇到过 REMOTE_ADDR 返回的是保留地址( 100.64.0.0/16 )的情况,这种基本上是运营商私播 IP 导致的。
    ysc3839
        8
    ysc3839  
       2020-02-13 03:49:02 +08:00 via Android
    @yuzo555 这种情况是你服务器通信走了运营商内网吧?不然你怎么发数据回去?
    lhx2008
        9
    lhx2008  
       2020-02-13 09:10:39 +08:00 via Android
    如果是从 socket 拿的不可能为空,但是加预判没什么问题,给一个特殊地址用于排查问题
    xiaoyouqiang
        10
    xiaoyouqiang  
       2020-02-13 10:53:41 +08:00
    为空的情况下,我没遇到过,获取的方法要多重判断,如果客户端有代理等情况,都要判断。最终下来肯定是有地址的。一个数据包在网络上传输,进过各种设备,肯定会有源地址信息。不过地址信息有可能是伪造的倒是真的
    yuzo555
        11
    yuzo555  
       2020-02-13 19:06:40 +08:00
    @ysc3839 运营商(我遇到的应该是浙江那边华数广电一类的二级运营商)私播 IP + 云服务商(我的案例是阿里云)的 BGP 线路正好在当地有该运营商的线路。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   954 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 84ms · UTC 22:51 · PVG 06:51 · LAX 14:51 · JFK 17:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.