mplayer -noconsolecontrols -ao pcm:file=audio.wav soundfile.wav &
Необходимо смочь передать по каналу exit
команда в STDIN в telnet
. Попытка:
echo 'exit' | telnet {site} {port}
и посмотрите, работает ли это. (это, кажется, работает над моим веб-сервером, но YMMV).
Я передумываю, инструмент для отправки команд непосредственно и просто быть произведенным был бы netcat. Это просто простой, но мощный инструмент для того, чтобы провести команды через порты. Вы видели пример использования в этом вопросе о суперпользователе: https://superuser.com/questions/261900/how-can-i-pipe-commands-to-a-netcat-that-will-stay-alive - автор вопроса дает рабочий пример в который завершения соединения после нескольких секунд.
И если Вы хотите только протестировать использование возможности соединения это: http://terminalinflection.com/use-netcat-not-telnet-to-test-network-connectivity/
&& exit
посмотрите, разъединяется ли это (в ssh, по крайней мере, это достаточно).
– IBr
13.08.2013, 16:35
&& exit
не работал. Если glibc должен существовать, и я полагаю, что он делает. Почему был бы nc.traditional
жалуйтесь на это, как будто это отсутствует?
– Muhammad Gelbana
13.08.2013, 17:38
] - Самый простой и легкий метод приведен ниже.[
] [ sleep <n> | telnet <server> <port>
]
[][]n[] - Время ожидания в секундах перед автоматическим выходом. Оно может быть дробным, как 0.5. Обратите внимание, что некоторый требуемый вывод может не быть возвращен в указанное время ожидания. Поэтому может понадобиться соответственно увеличить.[
] [][]server[] - IP или имя хоста целевого сервера.[
] [][]port[] - Номер порта целевой службы.[
] []Также можно перенаправить вывод в такой файл,[
] [sleep 1 | telnet <server> <port> > output.log
] В моем случае это работает. (CentOs7):
while read host port; do
r=$(bash -c 'exec 3<> /dev/tcp/'$host'/'$port';echo $?' 2>/dev/null)
if [ "$r" = "0" ]; then
echo "$host $port is open"
else
echo "$host $port is closed"
exit 1 # To force fail result in ShellScript
fi
done
:) Regards
Вот решение, которое я нашел в Интернете:
( echo open 127.0.0.1 23
sleep 5
echo your_login
sleep 5
echo your_password
sleep 5
echo hostname
sleep 5
echo exit ) | telnet
У меня работает на SunOS и HP -UX
Попробуйте
echo -e '\x1dclose\x0d' | telnet {HOSTNAME} {PORT}
Лучшая часть вышеизложенного заключается в том, что вы также получаете статус выхода. Если telnet прошел успешно, код выхода будет 0 или 1
Избегайте netcat, если у вас есть настраиваемые маршруты, так как он не подчиняется правилам маршрутизации. Подобно тому, как nslookup
, dig
и host
игнорируют файл /etc/hosts(nslookup, dig, firefox игнорирует записи в файле /etc/hosts).
т.е. :в отличие от приложений и инструментов, таких как telnet
и/dev/tcp
(Тестирование удаленного TCP-порта с помощью telnet путем выполнения однострочной -команды ), которая следует системным правилам маршрутизации, nc
использует значение по умолчанию шлюз, если специально не указано использовать исходный IP-адрес с-s
:
nc -w 3 -s 192.168.1.12 example.com 8080
Мне нужно было проверить, может ли приложение получить доступ к ресурсу, и если маршруты не работают, netcat
сообщил, что все в порядке, поскольку в тесте был указан исходный адрес. Я перехожу на использование/dev/tcp
.