Показать сообщение отдельно

  #9  
Старый 15.06.2008, 14:55
Аватар для Ky3bMu4
Ky3bMu4
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме:
1777536

Репутация: 932


Отправить сообщение для Ky3bMu4 с помощью ICQ
По умолчанию

Вот те простенький генератор 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
 
Ответить с цитированием