GNU/Linux >> Linux の 問題 >  >> Linux

ファイル内の IP アドレスから都市の位置を取得する

while read の使用 ループ:

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

これは ip_list.txt まで読み取ります ファイルを開き、各行を ip に設定します 変数をループしてから、それをカールします。

ステファンの提案に基づいて、 --fail を追加しました サーバーエラーと || break ループから抜け出せるように。 ipinfo.io では、無料アカウントで 1 か月あたり 50,000 件の API リクエストが許可されているため、所有している IP の数とこれを使用する予定の頻度によっては、問題になる可能性があります。


地理的 IP アドレスのルックアップには、通常、MaxMind の geoIP データベースを使用することを好みます。ローカル データベースを使用するため、IP アドレスごとにインターネット接続を行わず、呼び出し回数に制限がないため、より高速です。

Debian の場合、前提条件としてパッケージをインストールします:

sudo apt-get install geoip-bin geoip-database-extra

次に、スクリプトを実行します:

 while read -r ip; do geoiplookup $ip | awk -F, ' /City/  { print $5 } ' \
 ; done < ip_list.txt > cities.txt

Linux
  1. スクリプトから正しい終了コードを取得できませんか?

  2. Bashを使用してファイルから行を読み取る:対その間?

  3. ファイルから変数を読み取る方法は?

  1. ノンブロッキング Get Character

  2. コマンドラインから Dropbox ファイルの URL を取得するには?

  3. bash + bashスクリプトでファイルから変数と値を読み取る

  1. 標準入力からsedを読み取るにはどうすればよいですか?

  2. CからLinuxで現在のファイル(pwd)へのパスを取得する方法は?

  3. Linux 内から BIOS バージョンを取得する方法はありますか?