私はPrivateInternetAccessサーバーのすべての現在のIPアドレスの完全なリストを取得する方法を探しています。 OpenVPNのキルスイッチに手動で入力するには、完全なリストが必要です。私は下記のようにAdrelanos VPNファイアウォールをキルスイッチとして使用します。
Linuxユーザー向けのVPN(OpenVPN)ファイアウォールキルスイッチ
PIAフォーラムで次のリストをリクエストしている人を見ました。サーバーIPリスト
ただし、サービスがIPをブロックし始めたため、IPを取得する唯一の方法はホスト名を介してです。これは私にとって非常に時間がかかることです。
IPをソートして整理するのに十分な時間、サーバーにpingを送信できる単純なスクリプトがあるかどうか疑問に思います。他の方法も良いでしょう。ホスト名ごとに1つのサーバーと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を使用してすべてのホスト名を含むWebページを取得し、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
名前を付けるよりもホストを使用すると、重複することなくすべての名前を取得できるという利点があります。
名前解決の出力はawkで整理され、重複があるとは思わずに一意にソートされ、結果がファイルに書き込まれます。IP_リスト。
awk '{print $NF}' | sort -u > ip_list
awkが何をしているのか疑問に思う場合:各行の最後のフィールドを印刷します。