Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: netcat (nc.openbsd) - аномальное поведение  (Прочитано 1644 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн s0ldat

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
netcat (nc.openbsd) - аномальное поведение
« : 25 Апреля 2010, 04:35:21 »
Давно заметил за стандартным пакетом netcat-openbsd (который является стандартным и по зависимостям находится под ubuntu-minimal) очень странное поведение, а именно поведение неправильное.
Суть в том что отправлять данные nc (он же nc.openbsd) - отправляет, а вот выводить на stdout ответ - не выводит, например:

shell:~$ printf "HEAD / HTTP/1.0\r\n\r\n" | nc www.google.com 80
shell:~$ printf "HEAD / HTTP/1.0\r\n\r\n" | nc.openbsd www.google.com 80
shell:~$

однако если поставить пакет netcat (он же netcat-traditional), то получаем ответ от удаленного сокета:

shell:~$ printf "HEAD / HTTP/1.0\r\n\r\n" | nc.traditional www.google.com 80
HTTP/1.0 302 Found
Location: http://www.google.com.ua/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=bd90eac5b73eddd9:TM=1272155555:LM=1272155555:S=o4z0y2fk3NRDgJ-0; expires=Tue, 24-Apr-2012 00:32:35 GMT; path=/; domain=.google.com
Set-Cookie: NID=34=KgmJXs71ff6sdOJgAiQ7eGqaItzMuF8Qp3PhqnW5aZGXd1MvDnF34TGHivSIb6M3CQw7MLuGx-CMTU2gnf4_rENjhwFfWkheeT9h-2D-bYxdWL9wuwse_C_WsGmIOhei; expires=Mon, 25-Oct-2010 00:32:35 GMT; path=/; domain=.google.com; HttpOnly
Date: Sun, 25 Apr 2010 00:32:35 GMT
Server: gws
Content-Length: 222

shell:~$

Система: ubuntu 10.04, однако проверял и на 9.10 и вообще проблема относится к программе (даже на FreeBSD воспроизводится).
Как-то можно объяснить такое неправильное поведение программы? Для бага проблема слишком очевидна и велика.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: netcat (nc.openbsd) - аномальное поведение
« Ответ #1 : 25 Апреля 2010, 05:31:42 »
Давно заметил за стандартным пакетом netcat-openbsd (который является стандартным и по зависимостям находится под ubuntu-minimal)
Странно, но у меня на всех инсталляциях 9.10 установлен netcat у которого по прямой зависимости netcat-traditional

очень странное поведение, а именно поведение неправильное.
Отчегож оно неправильное? А может у netcat-traditional оно неправильное... Ведь явно из названия видно, что этот netcat со своим блекджеком и т.п. Да и вообще, этих nc хоть жопой жуй, и каждый со своими заморочками. И какой из них считать эталонным нельзя сказать..

Суть в том что отправлять данные nc (он же nc.openbsd) - отправляет, а вот выводить на stdout ответ - не выводит
Как stdin закрывается, программа просто завершается и неуспевает принять и отобразить ответ. Вот так работает:
echo -en "HEAD / HTTP/1.0\r\n\r\n" | nc.openbsd -q 1 google.com 80
« Последнее редактирование: 25 Апреля 2010, 05:33:21 от Mam(O)n »

Оффлайн s0ldat

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: netcat (nc.openbsd) - аномальное поведение
« Ответ #2 : 25 Апреля 2010, 14:30:44 »
мегаспасибо, как раз в опции "-q" и была загвоздка, действительно работает

 

Страница сгенерирована за 0.043 секунд. Запросов: 23.