有没有办法用脚本解析所有 PIA VPN IP?

有没有办法用脚本解析所有 PIA VPN IP?

我正在寻找一种方法来获取 PrivateInternetAccess 服务器的所有当前 IP 地址的完整列表。我需要完整的列表,以便我可以手动将它们输入到 OpenVPN 的终止开关中。我使用 Adrelanos VPN 防火墙作为终止开关,如下所述:

适用于 Linux 用户的 VPN (OpenVPN) 防火墙 Killswitch

我在 PIA 的论坛上看到有人要求提供以下列表:服务器IP列表
但由于服务开始阻止 IP,获取它们的唯一方法是通过主机名。这对我来说是非常耗时的。

我想知道是否有一个简单的脚本可以对服务器执行足够多次的 ping 操作来对 IP 进行排序并组织它们。任何其他方法也都很棒。如果每个主机名只有一台服务器和 IP,那就很容易了,但截至目前,仅荷兰主机名就有 278 台服务器。我不能花时间一遍又一遍地 ping 服务器,划掉多余的 IP,然后数数以确保我拥有全部 278 个 IP 地址。我也不只想要荷兰 IP 地址。我更喜欢一种像输入主机名并获取结果一样简单的方法。任何建议都会很棒。谢谢!

答案1

我认为这符合你的要求。 3分钟就搞定了。

wget -q  https://www.privateinternetaccess.com/pages/network/ -O - | grep -E -o '>[^.]+\.privateinternetaccess\.com<' | tr -d '[<>]'  | while read host ;do host $host ;done  | awk '{print $NF}' | sort -u > ip_list

因此,我们使用 wget 获取包含所有主机名的网页并将其输出到 STDOUT,同时抑制来自 wget 的活动报告。

wget -q  https://www.privateinternetaccess.com/pages/network/ -O -

我们在输出中查找主机名。

grep -E -o '>[^.]+\.privateinternetaccess\.com<'

然后使用 tr 从主机名中去除角度支持。

tr -d '[<>]'

然后,我们使用 bash while 循环遍历主机名并解析它们。

while read host ;do host $host ;done

与 ping 名称相比,使用主机的优点是您将获得全部名称,而不会出现重复的情况。

名称解析的输出用awk清理,然后唯一排序,不是我认为会有重复,并将结果写入文件ip_list

awk '{print $NF}' | sort -u > ip_list

如果您想知道 awk 的作用:它会打印每行的最后一个字段。

答案2

你可以尝试这个 Bash 脚本 选择最快的 PIA 服务器

需要 netselect 程序。

它从所选国家/地区选择最快的服务器

然后选择该服务器最快的 IP 地址。

答案3

这绝对有可能。我做到了(使用 PHP)并发布了所有服务器https://github.com/Lars-/PIA-servers。由于 DNS 不是每秒轮换,因此确实需要一段时间,但它确实有效。

相关内容