BinRelay
V2EX  ›  问与答

有没有什么 JavaScript 脚本或者浏览器的接口可以获取当前访问网页时的公网 ip 么?

  •  
  •   BinRelay · Feb 20, 2019 · 3482 views
    This topic created in 2684 days ago, the information mentioned may be changed or developed.

    因为网络的出接口有三家运营商的地址池做的负载均衡。
    所以每次访问一个网页都可能是不同的运营商不同的 ip 地址。
    有没有一种通过浏览器或者 js 的方法能够查出访问当前网页时的公网 ip ?
    就像浏览器开发者工具可以直接看到当前网页( cdn 或者真实)的目的地址那样? v2.png

    9 replies    2019-02-21 05:50:59 +08:00
    cpdyj0
        1
    cpdyj0  
       Feb 20, 2019   ❤️ 1
    从服务器上查看吧,本地浏览器应该是看不到的(除非服务器把 IP 地址返回回来了,比如 ipip.net 这种)
    momocraft
        2
    momocraft  
       Feb 20, 2019
    考慮 NAT 我覺得不行... 總得有個服務器
    momocraft
        3
    momocraft  
       Feb 20, 2019   ❤️ 1
    webrtc 系列 api 可以用公共的 stun 服務器獲取自己 (對於 stun 服務器的) 公網 ip 地址, 但這已經不是你要的了
    BinRelay
        4
    BinRelay  
    OP
       Feb 20, 2019
    @momocraft 这种方案挺多的 比如楼上的 ipip.net
    oott123
        5
    oott123  
       Feb 20, 2019
    可能通过 traceroute 来观察是个比较好的方案。本地有 NAT,基本上看不出来。
    BinRelay
        6
    BinRelay  
    OP
       Feb 20, 2019
    @oott123 假如对面是百度这种网址 可能每次 tracert 的目的都是不同的 cdn 进而出口的负载会是不同的出口 ip 那 tracert 和之前访问网页时已经不一样了呀

    看来只能在出口设备的 nat 记录中查找了 虽然有权限 但也不是我的目的了……
    oott123
        7
    oott123  
       Feb 20, 2019   ❤️ 1
    @BinRelay 你可以像你截图那样获取这次连接的 ip 地址,再 traceroute。

    当然你有权限在 NAT 日志或者状态表中找,显然是更好的。
    580a388da131
        9
    580a388da131  
       Feb 21, 2019 via iPhone
    负载均衡设备上写个工具返回来 🙈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2807 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 09:29 · PVG 17:29 · LAX 02:29 · JFK 05:29
    ♥ Do have faith in what you're doing.