Linux

從文件中的 IP 地址獲取城市位置

  • August 8, 2019

我需要的是找到與每個 IP 地址關聯的城市,我已經將它們儲存在一個文件中。

例如,文件的內容是:

99.203.11.34
99.203.11.37
99.203.11.47
99.203.11.51
99.203.11.77
99.203.11.84
99.228.120.115
99.252.235.47
99.45.74.135
99.72.61.242
99.8.236.39
N ...
M ...

您可以使用以下方法來獲得預期的結果,但每一個:

$ curl ipinfo.io/<IP>/city
> city name

例如:

$ curl ipinfo.io/99.72.61.242/city
> Sunrise

我想要類似的東西:

$ cat ip_list.txt | xargs curl ipinfo.io/$0/city

這有可能實現嗎?

使用while read循環:

while read -r ip; do curl --fail "ipinfo.io/${ip}/city" || break; done<ip_list.txt

這將讀取ip_list.txt文件並將每一行設置為ip循環變數,然後捲曲它。

根據 Stéphane 的建議,我已將--fail標誌添加到 curl 以便它會在伺服器錯誤時靜默失敗,|| break這樣它就會跳出循環。ipinfo.io 每月允許 50k API 請求免費帳戶,因此取決於您擁有多少 IP 以及您計劃使用它的頻率,這可能對您來說是個問題。

引用自:https://unix.stackexchange.com/questions/534582