Forum Programmation.shell Generateur de mots

Posté par  .
Étiquettes : aucune
0
26
fév.
2006
Bonjour,

j'ai produit un petit script qui génère tous les noms de domaine possible (enfin pas encore tout à fait) et fait un ping afin de connaitre l'addresse IP lié. Le script prend 2 variables et les utilise pour définir les tailles minimum et maximum des mots a générer. Je voudrai améliorer les script et je voulais avoir votre avis.

Les commentaires sont en anglais mais je pense que ca devrai aller.

merci!

Voice le code:


#!/bin/bash
MINSIZE=$1
MAXSIZE=$2
array1=(
a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2 3 4 5 6 7 8 9 0
)
array2=(
com net org be fr nl
)
currsize=$MINSIZE
#all sizes from MINSIZE to MAXSIZE
echo "initial values MINSIZE $MINSIZE MAXSIZE $MAXSIZE"
#loop through all posisble sizes.
while [ $currsize -le $MAXSIZE ]
do
currpos=0
addr_gen=""
arraysize=${#array1[@]}
let "totalcombo=$arraysize**$currsize"
echo "Total combo: $totalcombo $arraysize^$currsize"
#loop through all combinations for this size
for (( i = 0 ; i <= $totalcombo; i++ ))
do
lead=""
#translate input decimal to arraysize base. The awk print should be optimized
output=`echo "obase=$arraysize;ibase=10; $i;" | bc | awk '{print $1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12}'`
#add leading zero
for (( z = 1; z < $MAXSIZE; z++ ))
do
lead="00$lead"
done
output="$lead$output"
#generate all combinations
for (( j = 0 ; j < $currsize; j++ ))
do
let "startpos=(${#output}-(($j*2)))-1"
substring=`expr substr "$output" $startpos 2`
#substring=`printf "%d" $substring`
substring=`awk 'BEGIN{printf "%d\n", ARGV[1];}' $substring`
#echo "Output: $output size: ${#output} startpos: $startpos substr: $substring"
addr_gen[$j]="${array1[$substring]}"
done
arraysize2=${#array2[@]}
#try all different URL extensions
for (( k = 0 ; k < $arraysize2 ; k ++ ))
do
#remove all spaces in the generated address
finaladdr=`echo ${addr_gen[@]} | sed 's/ //g' `
#is there a faster way to resolve the name to the IP?
ipvar=$(ping -c 1 www.$finaladdr.${array2[$k]} | grep PING | gawk '{print $3}')
echo "www.$finaladdr.${array2[$k]} -> $ipvar"
done
addr_gen=""
done
((currsize++))
done

exit 0
  • # Dans quel but ???

    Posté par  . Évalué à 1.

    l'idee de vouloir scripte est bonne, ca aide a automatiser pas mal de choses.
    La ou je me pose quand meme une GROSSE question c'est sur le but que tu veux atteindre ...
    Pinguer tous les domaines existant ... hummm si c'est pour spammer, je trouve ca lamentable.

    De plus, tous les domaines ne repondrons pas aux pings.
    Prend par exemple M6.fr (qui repondais aux pings) qui ignore
    simplement ta demande... Vaut mieux utiliser des outils comme
    host et dig pour avoir des infos sur les DNS.

    Khan
    • [^] # Re: Dans quel but ???

      Posté par  . Évalué à 1.

      le but est nullement de spammer ou d'ennuyer de quel que facon que ce soit. A la base je voulais juste créer un petit script qui permet de générer toutes les combinaison de 'strings', mais aussi et surtout pour apprendre à utliliser bash au mieux.

      Je sais que les domaines ne répondent pas tous au PING, mais au moins il retourne l'addresse IP du domaine, ce qui était le but.

      J'ai essayé host (pas encore 'dig') mais il n'est pas plus rapide que PING.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.