![从 IP 列表中排除来自俄罗斯的 IP](https://linux22.com/image/1594713/%E4%BB%8E%20IP%20%E5%88%97%E8%A1%A8%E4%B8%AD%E6%8E%92%E9%99%A4%E6%9D%A5%E8%87%AA%E4%BF%84%E7%BD%97%E6%96%AF%E7%9A%84%20IP.png)
我应该使用 Bash 中的哪个命令来从 IP 列表中排除所有来自俄罗斯的 IP?
我想到也许可以借助geoiplookup
。我真正想要的结果是什么;
- 原始IP列表.txt
- 排除来自俄罗斯的 IP 的 IP 列表.txt
答案1
您可以在网页中找到俄罗斯 IP 列表 俄罗斯联邦 IP 地址范围。该列表目前包含 8381 个范围,从而分配了 45,626,826 个 IP 地址。
如果您更愿意使用编程解决方案,您可以使用该网站ipinfo.io
,每天免费提供 1000 个请求:
curl ipinfo.io/23.66.166.151
您也可以选择使用ifconfig.me
或ipstack.com
,每个都有自己的免费和付费计划。
答案2
对于那些像我之前一样寻找答案的人;
while read -r ip; do gl=$(geoiplookup "$ip") || continue; case "$gl" in *': RU,'*) printf '%s\n' "$ip" ;; esac; done <"$1"
享受!