Простой http сервер на Python

Доброго вечера, друзья! Сегодня у нас тема о создании локального соединения между двумя компьютерами что находятся в одной домашней сети. К примеру скажем есть у нас в наличии два компьютера, и подключены они к сети от одного маршрутизатора, у одного ip адресс 192.168.0.18 , а у другого 192.168.0.19. Этот вопрос можно решить несколькими путями, и один из самых очевидных путей это поднять на одном из них FTP сервер, а на втором задействовать программу Filezilla, и через нее получить доступ к файловой системе первого компьютера. Я попробовал поднять ftp сервер Pure ftpd, но что-то никак не смог осилить в его правильные настройки, и получилось так что в итоге получил полный доступ , к серверной машине да еще и с root правами.

Я сказал себе ,- «Влад , это не есть «gut»» ! Попутно что-то слегка сломалось в системе (что честно не помню, это было где-то около года назад),-«не-е-т брат такой танец нам не нужен»,-подумал я, и стал искать другое решение. И нашел очень интересную утилиту на python-e, ей к сожалению необходим python 2-й версии (его по тихоньку выпиливают из всех популярных дистрибутивов) , но в репозиториях Debian он есть, и потому я поспешил этим воспользоваться. В  python есть в наличии простой http сервер, но он позволяет задать только порт , а вот имя пользователя и пароль нет, расширенный скрипт в котором был устранен сей недостаток , вернее скрипт был дополнен этим функционалом был взят отсюда https://gist.github.com/fxsjy/5465353 , вы можете скопировать код и сохранить его с расширением *.py, либо скачать отсюда Скачать .Теперь чтоб запустить http сервер, достаточно запустит в терминале следующую команду

python2 '/home/ваш_пользователь/полный_путь_до_скрипта/SimpleAuthServer.py' 2725 Imia_user:paroli_dostupa

где 2725 это порт через который производится соединение а дальше вроде всё и так ясно.

Для упрощения в использования то есть для удобства я написал простой скрипт в котором вы можете поменять порт (в скрипте он задан цифрами, и это 2725) а так же имя пользователя которое запросит у вас браузер при подключении к Http серверу, и пароль доступа… Прежде чем запустить скрипт установите notify-send, в моей системе я использую notify-send от mate и установил его командой

sudo apt install mate-notification-daemon

Теперь смотрим любым удобным образом, Ip адрес вашей машины, на моей машине я просто навожу курсор на значок сетевого соединения в трее, и если удержать курсор то во всплывающей подсказке вы можете прочитать ваш ip адресс, а также если нажать правой кнопкой мыши на этот значок то в подпункте информация о соединении, можно найти ваш ip адресс. Теперь зная ip адресс на машине с которой желаем произвести подключение, открываем браузер и в адресной строке вводим наш ip адрес а также через : порт, должно получится что то похожее, http://192.168.0.18:2725

Далее браузер предложит ввести логин и пароль, введите тот логин и пароль что вы выбрали в скрипте управления python скриптом , после введения логина и пароля вы попадаете в каталог из которого запущен скрипт , теперь нажав правую кнопку мыши из контекстного меню мы можем скачать файл, либо кликнув по нему просмотреть его в браузере, если это текстовой файл, видео или картинка. Преимущество использования этого http сервера перед использованием ftp сервера , отсутсвие необходимости что-то устанавливать дополнительно на подключаемой машине, используем браузер который уже установлен, простота настройки сервера, играет не последнюю роль. Из недостатков отсутсвие возможности одновременого скачивания , а также что-то закачать на сервер, ну тут издержки простоты, а насчет закачивания так это можно расмотреть как и преимущество…

Особенности использования. В скрипте на bash для управления python скриптом, вы должны писать полный путь,никаких условных путей python скрипт не принимает, python скрипт покажет лишь те файлы из каталога который он был запущен… Вот такую интересную и полезную тему мы сегодня расмотрели. Спасибо за внимание

upd: А вот и версия http сервера для python3 подоспела, можно взять тут https://gist.github.com/mauler/593caee043f5fe4623732b4db5145a82, скопировать всё содержимое скрипта, в текстовой файл сохранить как http_server_auth.py , в домашний каталог , и исправить  открыв в текстовом редакторе в строке 52 ip адрес  , а так же в строке 64 скрипта порт по умолчанию ,сохранить , дать права на исполнение ,после в терминале запустить командой.  

python3 -m http_server_auth -u login_user -p paroli_dostupa

Можно оформить и скриптом,для удобства , можете отредактировать тот что был дан выше…

Автор статьи Vlad-totiks

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *