Използвам socat
за бързо грабване на telnet банер, като това:
for ip in $list
do
socat -T 1 - tcp:$ip:23 &
done
Той преминава през списъка с определени IP адреси и за всеки един извиква socat
, което свързва TCP socket
на порт 23 с stdin
(-) и прекъсва след една секунда, докато работи във фонов режим. Проблемът е, че всички фонови процеси използват един и същ stdin
, така че всички ще висят. Опитах опцията readline
, както и потискането на stdin
с </dev/null
, но без резултат. netcat
, например, се държи по същия начин, освен ако -d
не е указано да игнорира входа.
Редът socat
, който посочих, е част от скрипт, който се използва за други цели, така че би било хубаво, ако проблемът може да бъде разрешен, без да се прибягва до masscan
, nmap
или netcat
. Благодаря ти.
-
със заместващ процес, който не прави нищо? това:socat -T 1 <(:) tcp:$ip:23 &
. - person gniourf_gniourf   schedule 04.10.2015< /dev/null
преди&
, нали? - person that other guy   schedule 04.10.2015socat
трябва да има време за изчакване след една секунда. Акоecho -n |
или</dev/null
се предоставят от единия или другия край на тръбопровода, той не изпраща нищо и незабавно прекъсва сесията, понякога дори преди банерът да се покаже. Когато се предоставя с<(:)
,socat
се оплаква, че /dev/fd/.. е файлова система само за четене. - person Ulrik   schedule 04.10.2015