Juil 052012
 

Un tas de développeurs ne regardent pas plus loin que leur nez et ne pensent pas « dans le temps ».
quand on écrit un programme, il ne faut pas « juste » prendre en compte l’existant mais aussi ce qui pourrait exister, il faut toujours cloisonner les choix d’action possible d’un script ou d’un programme.

j’ai encore eu un cas cette semaine, ou un de nos serveurs de mail va changer, son adresse IP aussi. j’ai donc voulu vérifier par acquis de conscience si son adresse n’était pas référencée/utilisée dans des scripts. un seul mot : effarant!

pourquoi utiliser des adresse IP ? ça ne coûte rien d’associer avec le nom de la machine, toute entreprise qui se respecte à un serveur DNS interne, on peut aussi utiliser une map NIS, très facile à mettre en place, et ça ne prend aucune ressource.
et même sans tout ça, au pire, il y a toujours le fichier /etc/hosts.

bref, tout ça pour vous dire que j’ai un peu automatiser la recherche avec un script, voici la méthode:

en premier, il faut lister les fichiers dans lesquels vous aller chercher une adresse IP, on ne peut pas utiliser de pipe car, selon le nombre de fichier, on va saturer la mémoire.
on cherche dans toute l’arborescence, les fichiers, de moins de 500ko, et on ne cherche pas dans les répertoires nfs

$ find / -type f -size -512c \! -fstype nfs |tee /tmp/file_list.log

on utilise le script qui va bien pour chercher dans cette liste de fichier ce qui pourrait correspondre à une adresse IP.
il ne ss’agit pas ici de retrouver une suite de chiffre, on ne veut pas que cette suite de chiffre ait plus de quatre champs, qu’il n’y ait rien ou un espace/tabulation après la suite, par contre, l’IP peut être attachée à un argument ( arg -g12.10.10.10 par exemple ).

#! /usr/bin/ksh

while read data
do
        [ -n "$(awk '/[^0-9\.][0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[ 	$]/' "${data}")" ] && {
                echo "=== IP found in the file: ${data} ==="
                awk '/[^0-9\.][0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}[ 	$]/' "${data}"
                echo
        }
done < /tmp/file_list.log

redirigez la sortie vers un fichier et vous aurez votre liste, ainsi que la ligne contenant l’adresse IP possiblement trouvée.

  4 commentaires à “Comment chercher des adresses IP dans des fichiers”

  1. Hey. I discovered your own weblog the in the search engines. This is an excellent write-up. I am going to make sure to bookmark the idea along with go back to find out more of one’s tips. Appreciate the article. I willsurely go back.

  2. J’ai été absent pendant un certain temps , mais maintenant je me souviens pourquoi je l’habitude d’aimer ce blog . Merci, je vais essayer de vérifier plus fréquemment. À quelle fréquence vous mettez à jour votre site web ? 😉 😉

  3. Merci bien pour ce tuto adresse ip. Il faut en effet toujours cloisonner les choix d’action possible d’un script ou d’un programme pour ne pas agir dans le vide.

  4. I dugg some of you post as I cogitated they were very useful extremely helpful ebekeggeebgg

Laisser une réponse pour Anonyme Annuler le commentaire

Vous pouvez utiliser ces tags et attributs HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(requis)

(requis)

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.