
15.06.2008, 14:55
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
Вот те простенький генератор ip : port , потом можно чекеру скормить.
Код:
#!/bin/bash
declare -a s1
declare -a s2
declare -i port1
declare -i port2
declare file
function is_f () {
if [[ ${s1[0]} == ${s2[0]} && ${s1[1]} == ${s2[1]} && ${s1[2]} == ${s2[2]} && ${s1[3]} == ${s2[3]} ]]
then
return 0
else
return 1
fi
}
function next () {
let "s1[3]++"
if [[ "${s1[3]}" -gt "254" ]]; then
let "s1[2]++"
s1[3]=0
if [[ "${s1[2]}" -gt "254" ]]; then
let "s1[1]++"
s1[2]=0
if [[ "${s1[1]}" -gt "254" ]]; then
let "s1[0]++"
s1[1]=0
if [[ "${s1[0]}" -gt "254" ]]; then
echo "You entered invalid ip address!"
exit 1
fi
fi
fi
fi
}
function echo_ip () {
ii=$port1
while [ $ii -lt $port2 ]; do
echo "${s1[0]}.${s1[1]}.${s1[2]}.${s1[3]}:$ii" >> $file
let "ii++"
done
}
if [ $# -ne 5 ]; then
echo "Use: $o [start ip] [end ip] [start port] [end port] [output file]"
exit 1
fi
start=`echo $1 | sed "s/\./ /g"`
end=`echo $2 | sed "s/\./ /g"`
port1=$3
port2=$4
file=$5
t=0
for i in $start; do
s1[$t]=$i
let "t++"
done
t=0
for i in $end; do
s2[$t]=$i
let "t++"
done
r=1
while [ $r == 1 ]; do
next
is_f
r=$?
echo_ip
done
exit 0
|
|
|