Ip
在 bash 中通過 IP 獲取我的國家
我想在 bash 腳本中使用我現在所在國家/地區的名稱。我可以使用下一個命令獲取外部 IP:
curl ifconfig.me
但是我怎樣才能得到我的國家名稱呢?
ipinfo.io有很好的 JSON API 可以從命令行使用:
$ curl ipinfo.io { "ip": "X.X.X.X", "hostname": "No Hostname", "city": "Hanoi", "region": "Ha Noi", "country": "VN", "loc": "21.0333,105.8500", "org": "AS18403 The Corporation for Financing & Promoting Technology" }
您可以通過查詢公共 whois 數據庫獲得一些接近。處理每種可能的情況可能有點難以“生產”,但一個合理的近似值可能是:
$ whois a.b.c.d | grep -iE ^country:
a.b.c.d
有問題的IP地址在哪裡。
whois
通常預設安裝,因此這符合您對“我不想為此安裝任何軟體包”的合理解釋為“我不想安裝其他軟體”。要僅列印欄位的值
country
並僅將其強制為大寫(例如,使比較更容易),您可以執行以下操作:$ whois a.b.c.d | awk -F':[ \t]+' 'tolower($1) ~ /^country$/ { print toupper($2) }'