Когда есть необходимость передать файл с одной машины на другую,
а под рукой нет общедоступных ресурсов, можно сделать так: 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:
Обсуждается: https://www.opennet.ru/tips/info/1352.shtml