The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Выдача кода 200 с помощью telnet"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Выдача кода 200 с помощью telnet"  
Сообщение от unlock email on 12-Июл-07, 12:59 
Всем привет!

Есть нетривиальная задачка, нужна небольшая подсказка как её реализовать.
Задача:
Проверить с юникс-машины выдачу кода 200 по запросу HEAD в определённое время.
В обычном режиме проверяем с формированием запроса при помощи telnet:
telnet hostname 80
Trying hostname...
Connected to hostname.
Escape character is '^]'.
вводим:
HEAD / HTTP/1.1
HOST: hostname

выдаётся код 200 OK
соединение закрывается.

Вопрос в том, чтобы это пихнуть в скрипт. Пробовал:

#!/bin/bash
(sleep 2; echo "HEAD / HTTP/1.1"; sleep 2; echo "HOST: hostname"; sleep 2; exit) | telnet hostname 80 >hostname.log

но похоже не передаю тем самым команды телнету.
Как их передать и чтобы всё в лог вписалось?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выдача кода 200 с помощью telnet"  
Сообщение от vic (??) on 12-Июл-07, 15:08 
утилита expect в помощь

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Выдача кода 200 с помощью telnet"  
Сообщение от unlock email on 12-Июл-07, 17:26 
>утилита expect в помощь

А как справиться со следующим...:

мм есть к примеру скрипт:
#!/usr/bin/expect -f # Выполнение операции используя telnet
spawn telnet cisco.test.ru
expect  "login:" { send "adm\n"}
expect  "Password:" { send "пароль\n"}
expect "#" {send "show users\n"}
expect "#" {send "exit\n"}

тут всё ясно. Появляются #, посылаем команду.
А когда коннект идёт телнетом по 80 порту никаких # не появляется - пустая строка. Как передать и что сделать в этом случае?
Что-то вроде
#!/usr/bin/expect -f
spawn telnet hostname 80
expect "" {send "HEAD / HTTP/1.1\n"}
expect "" {send "HOST: hostname\n"}
expect "" {send "exit\n"}

не отрабатывает. Также не отрабатывают с \n и просто с send без expect.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Выдача кода 200 с помощью telnet"  
Сообщение от Anonymous on 03-Май-08, 21:58 
nc надо
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Выдача кода 200 с помощью telnet"  
Сообщение от wtf email(ok) on 21-Авг-08, 09:41 
На perle можно так:

use Net::Telnet();

my $t = new Net::Telnet(host => 'host.ru',
                        port => '80');

$t->open();
$t->print("HEAD / HTTP/1.0");
$t->print("\n");
my $respon;
($respon)=$t->waitfor('/200 OK/');
exit();

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру