Résultats script bash
Bonjour, je suis débutant en bash et on me demande de réaliser un bash qui doit récupérer les sous domaines d' un site web ainsi que de réaliser un ping sur chaque sous domaines.
Mon script ne fonctionne pas complétement car il retourne des off pour les premiers résultats puis il retourne bien les sous domaines avec les pings.
Merci d'avance pour votre aide
voici mon script :
#!/bin/sh
echo -n "entrer le domaine:"
read dom
set $dom
echo "sous dommaine appartenant a" $dom
wget -q $dom
dom2="$(echo $dom | sed 's/www\.//')" $dom
cat index.html | grep -o "[a-z][a-z]*\."$dom2 | sort -u > domains.txt # recup toutes les @ qui se termine par des lettre . $dom2 dans le txt
cat domains.txt #affiche le resultat
rm index.html #supp index.html
# Ping des sous domaines
for i in $(cat domains.txt)
do
echo "test du domaine " $i >>domains.txt
for j in $(host $i | grep -o "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*")
do
echo -n "ping $j " >>domains.txt
if [ "$(ping -c1 $j | grep '100% packet loss')" == "" ]
then
echo on >>domains.txt
else
echo off
fi
done
done
cat domains.txt
Mon script ne fonctionne pas complétement car il retourne des off pour les premiers résultats puis il retourne bien les sous domaines avec les pings.
Merci d'avance pour votre aide
voici mon script :
#!/bin/sh
echo -n "entrer le domaine:"
read dom
set $dom
echo "sous dommaine appartenant a" $dom
wget -q $dom
dom2="$(echo $dom | sed 's/www\.//')" $dom
cat index.html | grep -o "[a-z][a-z]*\."$dom2 | sort -u > domains.txt # recup toutes les @ qui se termine par des lettre . $dom2 dans le txt
cat domains.txt #affiche le resultat
rm index.html #supp index.html
# Ping des sous domaines
for i in $(cat domains.txt)
do
echo "test du domaine " $i >>domains.txt
for j in $(host $i | grep -o "[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*")
do
echo -n "ping $j " >>domains.txt
if [ "$(ping -c1 $j | grep '100% packet loss')" == "" ]
then
echo on >>domains.txt
else
echo off
fi
done
done
cat domains.txt
A voir également:
- Résultats script bash
- Resultats foot - Télécharger - Vie quotidienne
- Script vidéo youtube - Guide
- Lexer resultats - Télécharger - Sport
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
1 réponse
Personnellement j'aurais écrit un truc dans ce genre (en supposant que l'on cherche google.fr dans le fichier index.html), ici dans un shell :
... ou dans un script dans ce genre :
Bonne chance
for domain in $(grep -o "[a-zA-Z0-9]*\.google\.fr" index.html | sort | uniq); do (ping -c2 $domain | grep -q " 0\% packet loss" || echo "$domain is unreachable"); done
... ou dans un script dans ce genre :
#!/bin/bash
# Example:
# $1 = "www.google.fr"
# url = "google\.fr"
# $2 = page = "index.html"
url=$(echo "$1" | sed -e "s/\./\\\\./g")
page=$2
pattern=$(echo $url | sed -e "s/[^.]*\.\(.*\)/\1/" | sed -e "s/\./\\\\./g")
for domain in $(grep -o "$pattern" "$page" | sort | uniq)
do
ping -c2 $domain | grep -q " 0\% packet loss" || echo "$domain is unreachable"
done
exit 0
Bonne chance