#1 Le 11/03/2015, à 00:41
- jean-luc5629
script domaine avec plusieurs ip [résolu]
Bonsoir;
J'utilise ce script pour récupérer les ip dans un fichier à partir d'un autre fichier contenant des noms de domaines :
>/usr/local/bin/ip/list3
while read line
do
echo $(nslookup $line | awk '/^Address: / { print $2 }')
done < /usr/local/bin/domain/list >/usr/local/bin/ip/list3
Le problème c'est que certains domaines disposent de plusieurs ip; et j'obtiens ce genre de liste :
175.125.237.155
72.10.158.38
75.275.117.137
138.177.23.251
33.115.210.77
203.77.117.53
52.210.33.111
203.77.117.57
138.275.51.171
57.32.5.135
203.77.117.77
107.28.1.87 107.28.0.87
35.171.72.178
52.210.77.20
77.120.222.130
75.275.117.137
58.158.320.52
107.33.35.383 107.33.37.383
Voir le problème en 12° et dernière ligne....18 domaines mais 20 ip...et je voudrais toutes les ip, mais une par ligne.
J'ai aussi tenté avec dig + short, mais même problème.
Merci
Dernière modification par jean-luc5629 (Le 12/03/2015, à 00:05)
Hors ligne
#2 Le 11/03/2015, à 07:34
- pingouinux
Re : script domaine avec plusieurs ip [résolu]
Bonjour,
Tu peux remplacer l'avant-dernière ligne par
nslookup $line | awk '/^Address: / { print $2 }'
Remarque : La première ligne est inutile, puisque tu crées le fichier ensuite
Hors ligne
#3 Le 11/03/2015, à 08:45
- bruno
Re : script domaine avec plusieurs ip [résolu]
Bonjour,
En passant le nom du fichier en argument :
#!/bin/bash
while read line
do
if [ $line ]
then
echo -e "$(dig $line A +short)"
fi
done < $1
Hors ligne
#4 Le 11/03/2015, à 18:48
- jean-luc5629
Re : script domaine avec plusieurs ip [résolu]
Salut;
Merci à vous deux.
Finalement, rectificatif, c'est de ma faute je n'ai pas été assez clair au départ...car ce que je voulais faire en plus, n'est pas réellement résolu , et pour ceci j'étais obligé d'utiliser echo tel ma première idée pour le fichier /etc/hosts :
while read line
do
echo $(nslookup $line | awk '/^Address: / { print $2 }') $line
echo $ip
done < /usr/local/bin/domain/list >>/etc/hosts
Afin d'obtenir les lignes :
ip hostname
mais j'obtiens toujours
ip1 ip2 hostname
#######################################################################
Par contre avec dig + short, j'ai un soucis avec des hostname qui sont sous cette forme :
nom.e-site.zone qui a 2 ip mais me sort :
nom.e-site.zone. ###pas d'ip et un . en bout du hostname
ip1 ##pas le hostname
ip2 nom.e-site.zone
Dernière modification par jean-luc5629 (Le 11/03/2015, à 19:16)
Hors ligne
#5 Le 11/03/2015, à 20:33
- quaego
Re : script domaine avec plusieurs ip [résolu]
Salut,
Si j'ai bien compris ce qui est souhaité, au lieu de :
echo $(nslookup $line | awk '/^Address: / { print $2 }')
Avoir quelque chose du style (boucler sur les IPs, puisqu'elles sont séparées par des espaces) :
ips=$( nslookup $line | awk '/^Address: / { print $2 }' )
for ip in $ips
do
echo "$ip $line"
done
Hors ligne
#6 Le 11/03/2015, à 22:32
- pingouinux
Re : script domaine avec plusieurs ip [résolu]
nslookup $line | awk -v line=$line '/^Address: / { print $2" "line }'
Hors ligne
#7 Le 12/03/2015, à 00:07
- jean-luc5629
Re : script domaine avec plusieurs ip [résolu]
nslookup $line | awk -v line=$line '/^Address: / { print $2" "line }'
Bonsoir;
Moi qui m'entêtais avec echo !!!
Merci encore..
Hors ligne