The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何在任意主機查詢對外的 IP 地址

我偶爾會需要查詢當前主機的對外 IP 地址 (出口 IP 地址),其實提供這種服務的網站很多,你可以透過瀏覽器開啟網頁查詢 IP 地址,也可以透過 curl 命令列工具查詢。不過,最近我常用的 ifconfig.co 因為掛上了 Cloudflare 的 CDN,同時又啟用了防機器人功能(Cloudflare Bot Management),導致我透過 curl 就抓不到 IP 了,感覺十分困擾。這篇文章我整理一些不同的選項,讓你可以在任意主機上查詢對外 IP 地址。

the process of querying an external IP address on any host

我早期常用 myip.com.tw 來查詢 IP 地址,主要是網址好記,打開網頁後直接顯示 IP 給你看,也沒其他功能,就顯示 IP 而已。不過他最近加上了 Cloudflare Bot Management 功能,直接被我拉黑不再用了。

其實還有很多其他查詢 IP 的網站,功能豐富且完整,不但可以查 IP 地址,還會顯示 IP 反查的域名、所在城市、國家、經緯度座標、時區與 ISP 資訊等等,相當不錯。

為此我重新選擇了幾個好用的網站,選用的標準如下:

  1. 網址短、好記

    這很重要!

  2. 沒有啟用防機器人功能

    如果網站啟用了防機器人功能,透過 curl 就抓不到 IP 了!

  3. 同時支援 HTTP 與 HTTPS

    這是為了方便我用命令列執行時不用輸入 https:// 完整網址!

以下是我目前的幾個選擇:

  1. 最乾淨的網站 (沒有掛載 CDN 或 Bot Management)

    ip.me

    curl ip.me
    
  2. 有掛載 Cloudflare CDN,但沒有啟用 Bot Management

    ip.sb

    curl ip.sb
    
  3. 回傳 JSON 格式的 IP 資訊

    ipinfo.io

    curl ipinfo.io
    

    搭配 jq 就非常實用:

    curl ipinfo.io | jq
    

    取得當下 IP 所在的時區:

    curl -s ipinfo.io | jq ".timezone" -r
    

相關連結

留言評論