Как программировть сокеты из-под bash

Автор: Max111111 Дата: 16.08.2008 17:46 имеются ли утилиты для работы с сокетами напрямую через оболочку bash путем написания скриптов?
Re: как программировть сокеты из-под bash 16.08.2008 23:17kosmonavt Читать/писать в порт? Имеются, например, nc (netcat).

Либо можно средствами баша:
---
#!/bin/bash

exec 3<>/dev/tcp/www.google.com/80 # открыть на 3-м дескрипторе 80-й порт

(
echo 'GET /search?q=man+bash HTTP/1.0'
echo
) | sed 's/$/\r/' >&3

sed -e 's/\r//g' -e '1,/^$/d' <&3 | lynx -stdin
---
Re: как программировть сокеты из-под bash 23.10.2008 22:28smaharbA вперед устройство создай
Re: как программировть сокеты из-под bash 24.10.2008 13:51StupidTux ---
#!/bin/bash

exec 3<>/dev/tcp/www.google.com/80 # открыть на 3-м дескрипторе 80-й порт

(
echo 'GET /search?q=man+bash HTTP/1.0'
echo
) | sed 's/$/\r/' >&3

sed -e 's/\r//g' -e '1,/^$/d' <&3 | lynx -stdin
---
Извините за вопрос ,а что можно сделать(получить) при помощи
такой неудобочитаемой конструкции?
Есть ли более наглядные способы получить тот же результат?
Re: как программировть сокеты из-под bash 24.10.2008 19:35kosmonavt > вперед устройство создай

Говорят, что даже цыгвине баш может так работать без устройства! Брешут?

btw, смотри сюда:
[home.vrweb.de]

мало того, что gawk может порты открывать как bash, так они еще и xml к нему прикрутили. Совсем гнутые загнулись.
Re: как программировть сокеты из-под bash 25.10.2008 17:09kosmonavt > Извините за вопрос

Извиняю

> Есть ли более наглядные способы получить тот же результат?

А как же:
---
man bash
---
Re: как программировть сокеты из-под bash 25.10.2008 18:50smaharbA да ну ? космонавт ты на луне читать учился ?
где ты взял /dev/tcp ? вперед создай
Re: как программировть сокеты из-под bash 25.10.2008 22:17kosmonavt У тебя в танке люк заклинило? man не помогает? Тогда погрепай сорцы баша, может поможет.
Re: как программировть сокеты из-под bash 25.10.2008 23:32StupidTux
Украинский космонавт и муж бабы Параски. которую не взяли в парламент очевидно из инте срисовал эту конструкцию, [www.opennet.ru] :
---
Сообщение от Дима emailИскать по авторуВ закладки on 23-Июл-03, 12:03 (MSK)

Громадно спасибо!
Заработало! Получился такой скрипт (если кто еще заинтересуется)

#! /bin/sh
server=1.2.3.4
port=25
request="hello anyname"
from="mail from:<some@place.com>"
to="rcpt to:<some1@city.com>"
data="data"
text="test message!"
pset="."
quit="quit"
exec <>/dev/tcp/$server/$port

exec 1>&0
echo $request
read responce
echo $from
read responce
echo $to
read responce
echo $data
read responce
echo $text
echo $pset
read responce
echo $quit
exec 1<&-
exec 0<&-

Еще раз спасибо!
---
Re: как программировть сокеты из-под bash 25.10.2008 23:40StupidTux И ещё нарыл вот это из [www.emanual.ru]:

---
3. Информация специфищеская для различных операционных систем.

Некоторым системам требуется устройство /dev/tcp: Старые SVR2 и SVR3 системы RTU 6.0 (Masscomp,
now Concurrent Real Time UNIX), AT&T 3B1 и 3B2


[dev/tcp]
Некоторые реализации ftpd требуют наличия ~ftp/dev/tcp для обеспечения работы анонимного FTP
сервера.

Вы можете создать это устройство (man mknod) в катадоге ~ftp/dev/ c такими же major и minor
номерами, как и у системного /dev/tcp.

~ftp/dev - это каталог, ~ftp/dev/tcp - символьное устройство. Владелец м группа для него 'root'.
Права доступа для ~ftp/dev должны быть read/write/exec для владельца и read/exec для группы, для
~ftp/dev/tcp права владельца read/write, права для группы read.
---

Так что может повременить с регистрацией бабы Параски и киевского касмонаута?
)))))
Re: как программировть сокеты из-под bash 25.10.2008 23:56StupidTux Вот еще ссылка от Гугля:
[alexey.sveshnikov.ru]

Чёт меня понесло.
Почитайте вот это, пожалуйста:
---
:;while [ $? -eq 0 ];do nc -vlp 8080 -c'(r=read;e=echo;$r a b c;z=$r;while [ ${#z} -gt 2 ];do $r
z;done;f=`$e $b|sed 's/[^a-z0-9_.-]//gi'`;h="HTTP/1.0";o="$h 200 OK\r ";c="Content";if [ -z $f
];then($e $o;ls|(while $r n;do if [ -f "$n" ]; then $e "<a href=\"/$n\">`ls -gh $n`</a>
<br>";fi;done);-);elif [ -f $f ];then $e "$o$c-Type: `file -ib $f` $c-Length: `stat -c%s $f`";$e;cat
$f;else $e -e "$h 404 Not Found 404 ";fi)';done
---

неужели нормальный юзер это осилит, если он не злобный одмин и не фанат?
Чесслово, уж сразу бы китайскими ероглифами талдычить ...
Зачем пытаться усложнить запись?
Да запиши дополнительно 10-20 строк, но чтобы оно читабельно было.
Или уж тогда для крутизны зашифруйте текст и читайте только с енкодером ...

После этого эти люди нахваливают Линь как дружелюбную ось ... ё моё!
Re: как программировть сокеты из-под bash 27.10.2008 00:14kosmonavt > [linsovet.com]

В этот список нужно добавить ksh-93
Re: как программировть сокеты из-под bash 27.10.2008 08:39smaharbA дико извиняюсь перед космонавтом
привычка стара, что надо создать устройство, ан нет теперь уже оказывается ненадо
mknod /dev/tcp c 30 36 (уже ненужно, прогресс опережает)

хотя не все так радужно )))

./google.sh: line 3: /dev/tcp/www.google.com/80: No such file or directory
Re: как программировть сокеты из-под bash 27.10.2008 21:00kosmonavt > ./google.sh: line 3: /dev/tcp/www.google.com/80: No such file or directory

Откусили в целях безопасности? А смысл, если в перле или питоне работа с сетью из коробки?
Re: как программировть сокеты из-под bash 31.10.2008 10:56OCTAGRAM ещё пригодятся netcat, socat
Re: как программировть сокеты из-под bash 31.10.2008 20:09kosmonavt Все забыли про xinetd/inetd. В этом случае можем писать не только на баше, но и на табуретке Улыбка
RSS-материал