URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 36332
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Быстрая передача файла через псевдо-HTTP"

Отправлено auto_tips , 27-Дек-06 14:07 
Когда есть необходимость передать файл с одной машины на другую,
а под рукой нет общедоступных ресурсов, можно сделать так:

    nc -l -p 8080 < file
или
    netcat -l 8080 < file

на клиенте достаточно в браузере набрать http://192.168.0.123:8080

Собственно, все. Впрочем, если получатель - блондинка, которая не знает команды File-Save, можно написать так:

   (echo -e "HTTP/1.1 200\nContent-Disposition: attachment;
   filename=gena_na.png\nContent-Type: application/octet-
   stream\nConnection: close\n"; cat vim_mrxvt.png ) | nc -vv -l -p 8080

Но это еще не все. Можно дать доступ к целой директории, написав простой HTTP сервер в одной строке:

   while true; do nc -vv -l -p 8080 -c '( read a b c; file=`echo $b | sed 's/[^a-z0-9.]//g'`;
   if [ a$file = "a" ]; then ( ls | (while read f; do echo "<a href=$f>$f</a><br>"; done) );
   else cat $PWD/$file; fi )'; sleep 1; done

Этот скрипт отдает все файлы, которые есть в текущем каталоге и не позволяет его сменить.
В случае, если запрашивается корневая директория, то управление передается
своеобразному mod_index - т.е. выводится список файлов-ссылок. В конце добавлена задержка в 1 сек
для того, чтобы была возможность убить его нажатием Ctrl-C.

См. подробнее http://connection-refused.blogspot.com/2006/12/http-222.html

URL:
Обсуждается: http://www.opennet.me/tips/info/1352.shtml


Содержание

Сообщения в этом обсуждении
"Быстрая передача файла через псевдо-HTTP"
Отправлено I3rain , 27-Дек-06 14:07 
Хм классно. Нужно запомнить.

"Быстрая передача файла через псевдо-HTTP"
Отправлено Max , 27-Дек-06 16:15 
netcat -l 8080 < file

Помоему не совсем правильно.

netcat -l -p 8080 < file, так заработало...


"Быстрая передача файла через псевдо-HTTP"
Отправлено mahoro , 27-Дек-06 22:30 
Да, действительно. Внес правку..

"Быстрая передача файла через псевдо-HTTP"
Отправлено Алек , 27-Дек-06 18:14 
А что за netcat? У меню не находит такой команды :-(

"Быстрая передача файла через псевдо-HTTP"
Отправлено mahoro , 27-Дек-06 22:31 
http://netcat.sourceforge.net/
man netcat, nc --help

"Быстрая передача файла через псевдо-HTTP"
Отправлено Zulu , 28-Дек-06 00:05 
А зачем браузер?
Я так всегда передаю:

tar -c . | gzip | netcat host port
<->
netcat -lp port | gunzip | tar -x


"Быстрая передача файла через псевдо-HTTP"
Отправлено mahoro , 28-Дек-06 12:32 
Это клево, если и там и там - advanced user и юникс. А на винду? )

"Быстрая передача файла через псевдо-HTTP"
Отправлено A , 28-Дек-06 13:26 
А зачем брузер использовать? можно и оправлять, и получать nc :-)
на принимающей машине: nc -l 9000 > file
на отправляющей nc xx.xx.xx.xx 9000 < file

"Быстрая передача файла через псевдо-HTTP"
Отправлено Andriy , 02-Янв-07 21:54 
netcat'ом класно машины клонировать, Acronis'ы  и Ghost'ы спрячутся.

"Быстрая передача файла через псевдо-HTTP"
Отправлено mrvmrv , 06-Янв-07 15:25 
" netcat'ом класно машины клонировать, Acronis'ы  и Ghost'ы спрячутся. "

Kakim OBRAZOM??? ESLI NE SECRET???
SPASIBO!!!???!!!


"Быстрая передача файла через псевдо-HTTP"
Отправлено mahoro , 06-Янв-07 23:11 
dd if=/dev/hda | gzip | nc -vv remote.host 1234
nc -vv -l -p 123 | gunzip | /dev/hda
Примерно так.
Только я бы вместо netcat использовал бы ssh..

"Быстрая передача файла через псевдо-HTTP"
Отправлено Veter , 02-Янв-07 22:53 
Работает как-то странно. Передает или кусок файла (konqueror->kget), или не останавливается после окончания передачи (firefox). Похоже, надо еще Content-length отправлять.

"Быстрая передача файла через псевдо-HTTP"
Отправлено anonymous , 05-Янв-07 15:24 
Super, TNX. Rabotaet, no tol'ko bez "-p"
$ nc -l 8080 < file
a vot optsii "-c" net (man smotrel).
OS Fedora Core 4
ne podskazhete kak obojti?

"Быстрая передача файла через псевдо-HTTP"
Отправлено Николай , 08-Янв-07 02:10 
tar -czpf - dir1 dir2 ... | ssh root@target 'tar -xzpf - -C /home'
или наоборот:
ssh user@source 'tar -czpf - dir1 dir2 -C /home' | tar -xzpf - -C /home

"Быстрая передача файла через псевдо-HTTP"
Отправлено dot22 , 11-Янв-07 10:56 
Какое-то странное экранирование получается...
Сейчас проверил - в директории, помимо других разных, лежит файлик Hi-NoteDB.pdb. Если другие файлы скачать/получить удается, то при обращении к этому файлу выводится ошибка:
cat: /home/dot/tmp/install/iote.pdb: No such file or directory
из-за чего такое может быть?

"Быстрая передача файла через псевдо-HTTP"
Отправлено dot22 , 11-Янв-07 11:07 
Заметил, что в выводе ошибки отсутствуют заглавные буквы. Переименовал файл в hi-notedb.pdb. Теперь другая ошибка:
cat: /home/dot/tmp/install/hinotedb.pdb: No such file or directory

Обратил внимание на следующий кусок скрипта:
sed 's/[^a-z0-9.]//g'
т.е. в именах файлов допустимы только строчные символы и цифры?
Попробовал в этом куске заменить "а маленькое" на "А большое". Скрипт вообще сломался - листинг файлов выводит, но сами файлы не отдает, кроме того, в самом верху страницы выводится сообщение: sed: -e выражение #1, символ 15: Invalid range end


"Быстрая передача файла через псевдо-HTTP"
Отправлено dot22 , 11-Янв-07 11:22 
Еще заметил...
Есть две машины
- Debian/testing
GNU bash, version 3.1.17(1)-release (i486-pc-linux-gnu)
nc v1.10
-CentOS release 4.4 (Final)
GNU bash, version 3.00.15(1)-release (i686-redhat-linux-gnu)
nc v1.10

На первой машине скрипт работает нормально, на другой - nc ругается на неправильные опции:
nc: invalid option -- c
Версии nc одинаковые, но выводы по nc -h различаются. Так что, получается, такой скрипт может сработать не на всех дистрибутивах.


"Быстрая передача файла через псевдо-HTTP"
Отправлено Deepwalker , 14-Янв-07 10:44 
Можно проще : ))
python:
from twisted.internet import reactor
from twisted.web2 import server, static, channel, http
PORT = 8081
DIRECTORY = '/home/ftp/'
s = server.Site(static.File(DIRECTORY))
reactor.listenTCP(PORT, channel.HTTPFactory(s))
reactor.run()

"Быстрая передача файла через псевдо-HTTP"
Отправлено piranha , 24-Янв-07 11:20 
Спасибо. ;)

http://blog.piranha.org.ua/webdirpy/


"Быстрая передача файла через псевдо-HTTP"
Отправлено terr0rist , 16-Янв-07 14:57 
>> nc -l -p 8080 < file
Опция -р не нужна с -l (по крайней мере FreeBSD 6.1)
nc -l 8080 < file

"Быстрая передача файла через псевдо-HTTP"
Отправлено skif , 16-Янв-07 16:47 
не пашет система freebsd 6.0

nc: cannot use -p and -l
если без -p
то при соединении с другого компа выдает
Host: 192.168.0.100:9000
Connection: Keep-Alive
и ничего не происходит