Re: /dev/tcp
man bash? В дебиановском пакете это отключено, с логичным объяснением, почему. /dev/tcp/host/port -- Алексей
Re: /dev/tcp
Rubin Shafiev wrote: Ух, целых три письма про неткат. С неткатом я и сам умею, а нужно как раз без него (долго объяснять почему). Как без нетката? Я знаю, можно как-то через /dev, только не помню, как конкретно и какие условия должны соблюдаться (версия ядра, опции, etc). man bash? /dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number, bash attempts to open a TCP connection to the corresponding socket. /dev/udp/host/port If host is a valid hostname or Internet address, and port is an integer port number, bash attempts to open a UDP connection to the corresponding socket. Вот то что нужно, спасибо. Спасибо также всем другим ответившим, и про отключение этой фичи в Дебиан особенно.
Re: /dev/tcp
On Fri, Nov 16, 2001 at 06:06:06PM +0200, Alexei Khlebnikov wrote: Можно портабельно: netcat (бинарник зовут nc). Пример: ls | nc host port Вещь в хозяйстве очень полезная. Ух, целых три письма про неткат. С неткатом я и сам умею, а нужно как раз без него (долго объяснять почему). Как без нетката? Я знаю, можно как-то через /dev, только не помню, как конкретно и какие условия должны соблюдаться (версия ядра, опции, etc). Может, gawk поможет? #! /bin/bash echo 1-сеть: сервер ждёт соединение, пишет в порт| gawk '{print|/inet/tcp//0/0}' echo 2-эхо: клиент запрашивает соединение, читает из порта gawk 'BEGIN{while((/inet/tcp/0/localhost/|getline)0)print}' echo 3-эхо: сервер ждёт соединение, читает из порта gawk 'BEGIN{while((/inet/tcp//0/0|getline)0)print}' echo 4-сеть: клиент запрашивает соединение, пишет в порт| gawk '{print|/inet/tcp/0/localhost/}' Auf Wiederlesenophil aka Д-р Антикоммуний -- Oleg P. Philon http://gomelug.agava.ru/articles Linux Lab, Gomel, Belarus mailto:[EMAIL PROTECTED] http://anticommunist.narod.ru mailto:[EMAIL PROTECTED]
Re: /dev/tcp
On Fri, 16 Nov 2001, Alexei Khlebnikov wrote: Подскажите пожалуйста, как перенаправить вывод в tcp-порт. Помню там что-то типа ls /dev/tcp/host/port Можно портабельно: netcat (бинарник зовут nc). Пример: ls | nc host port Вещь в хозяйстве очень полезная. Best regards, -Vlad
Re: /dev/tcp
Vlad Harchev wrote: On Fri, 16 Nov 2001, Alexei Khlebnikov wrote: Подскажите пожалуйста, как перенаправить вывод в tcp-порт. Помню там что-то типа ls /dev/tcp/host/port Можно портабельно: netcat (бинарник зовут nc). Пример: ls | nc host port Вещь в хозяйстве очень полезная. Ух, целых три письма про неткат. С неткатом я и сам умею, а нужно как раз без него (долго объяснять почему). Как без нетката? Я знаю, можно как-то через /dev, только не помню, как конкретно и какие условия должны соблюдаться (версия ядра, опции, etc).
Re: /dev/tcp
Ух, целых три письма про неткат. С неткатом я и сам умею, а нужно как раз без него (долго объяснять почему). Как без нетката? Я знаю, можно как-то через /dev, только не помню, как конкретно и какие условия должны соблюдаться (версия ядра, опции, etc). man bash? /dev/tcp/host/port If host is a valid hostname or Internet address, and port is an integer port number, bash attempts to open a TCP connection to the corresponding socket. /dev/udp/host/port If host is a valid hostname or Internet address, and port is an integer port number, bash attempts to open a UDP connection to the corresponding socket.
Re: /dev/tcp
Неа, так оно не работает. Вообще фраза перенаправить вывод в tcp-порт некорректна. Проблема в том, что порта как некого виртуального устройства просто нету. Есть сокеты. У сокета ( если ето TCP или UDP сокет и если его уже к комуто connect()-нули ) есть source port и destination port которые являются его как бы свойствами. Так вот, для того чтобы на сокет чего-нибудь послать, есть два метода. Во первых его можно програмными методами самому открыть и пользоваться, во вторых можно воспользоваться inetd который с сокетами работает сам а программа шлет и получает данные через stdio и stdout. Если разговор про то, как подсоединится к уже открытому слушающему порту, можно использовать telnet ( TCP ) или netcat ( TCP и UDP ). Послать что-либо через чужой сокет ( не слушающий ) на сколько я знаю нельзя. Можно только подделать адрес и TCP флаги и вклинится в существующее соединение. Это впрочем дело для хакеров. Почитай следующие документы: man socket ( функция socket() для C ) info libc ( главу про програмирование с сокетами ) man perlipc ( про сокеты в perl ) man inetd ( про работу с inetd ) On Friday 16 November 2001 07:53 am, Alexei Khlebnikov wrote: Подскажите пожалуйста, как перенаправить вывод в tcp-порт. Помню там что-то типа ls /dev/tcp/host/port
Re: /dev/tcp
On Fri, Nov 16, 2001 at 01:26:47PM -0500, Dmitriy Kropivnitskiy wrote: Неа, так оно не работает. Вообще фраза перенаправить вывод в tcp-порт некорректна. Проблема в том, что порта как некого виртуального устройства просто нету. Есть сокеты. У сокета ( если ето TCP или UDP сокет и если его ... man socket ( функция socket() для C ) info libc ( главу про програмирование с сокетами ) man perlipc ( про сокеты в perl ) man inetd ( про работу с inetd ) Советую ещё info -f gawkinet Начиная с версии 3.1 gawk работает с двунаправленными портами через новую конструкцию | Например, запускаешь сервер : ... $ gawk 'BEGIN{print strftime()|/inet/tcp//0/0}' а потом читаешь из порта: ... $ gawk 'BEGIN{/inet/tcp/0/localhost/|getline;print}' Auf Wiederlesenophil aka Д-р Антикоммуний -- Oleg P. Philon http://gomelug.agava.ru/articles Linux Lab, Gomel, Belarus mailto:[EMAIL PROTECTED] http://anticommunist.narod.ru mailto:[EMAIL PROTECTED]