GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir l'emplacement de la ville à partir des adresses IP dans un fichier

Utiliser un while read boucle :

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

Cela lira le ip_list.txt fichier et définissez chaque ligne sur le ip variable de boucle, puis bouclez-la.

Sur la base de la suggestion de Stéphane, j'ai ajouté le --fail flag pour boucler afin qu'il échoue silencieusement en cas d'erreur de serveur et le || break pour qu'il sorte de la boucle. ipinfo.io autorise 50 000 demandes d'API par mois pour les comptes gratuits, donc en fonction du nombre d'adresses IP que vous possédez et de la fréquence à laquelle vous prévoyez de l'utiliser, cela peut être un problème pour vous.


Pour la recherche d'adresses IP géographiques, je préfère généralement utiliser la base de données geoIP de MaxMind. Il est plus rapide, car il n'a pas de connexion Internet pour chaque adresse IP, car il utilise une base de données locale et n'a pas de limite sur le nombre d'appels.

Si dans Debian, en pré-requis, installez les packages :

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

Exécutez ensuite le script :

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

Linux
  1. Impossible d'obtenir le bon code de sortie à partir d'un script ?

  2. Comment lire une variable à partir d'un fichier ?

  3. Obtenir un caractère non bloquant

  4. Le shell Linux récupère la valeur d'un champ à partir d'un fichier yml

  5. Est-il possible de lire un fichier texte à l'intérieur d'un fichier zip protégé par mot de passe sans le mot de passe ?

Script bash :comment lire des données à partir de fichiers texte

Comment extraire des adresses e-mail d'un fichier texte sous Linux

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment puis-je obtenir la longueur d'un fichier vidéo à partir de la console ?

Comment obtenir l'URL du fichier Dropbox à partir de la ligne de commande ?

tar :lecture courte