Сегодня 6 ноября, среда ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Леонид Каганов
Леонид Каганов
Голосов: 2
Адрес блога: http://lleo.livejournal.com/
Добавлен: 2007-12-13 21:28:18 блограйдером Luber
 

Поиск IP по картинке

2016-08-20 19:08:09 (читать в оригинале)

это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/08/20.html

Сижу дома, простудился сильно. А это у меня обычно недели на полторы. В таком состоянии никакая работа невозможна, можно только программировать. Программировать — это не работа, тут ума не надо. Товарищ попросил сделать систему неких беспилотных мониторов техпроцессов для промышленного объекта. Дело нехитрое: взяли мы в домашнем хозяйстве свободную Raspberry Pi (спасибо старым друзьям за подгон), поставили почти без бубнов тамошний Debian, запустил я на нем LXDE (простого startx почему-то в системе не оказалось), привинтил браузер какой-то Midule или Midile или что-то типа того (Chromium отказывался становиться даже после длинных инструкций, да и не нужен он), поставил PHP и Apache (nginx из коробки работать отказался, а настраивать было лень). В общем, получился классический kiosk: грузится система, разворачивается на весь экран только браузер, ну и дальше он уже пляшет. Написал я на JS тонкий клиент, который всякую работу делает и аяксами лазает на местные сервера. Единственная проблема: станки эти находятся в закрытом городе, а ехать туда нет ни сил ни желания ни допусков. Поэтому надо, чтоб всё заработало из коробки. А у системы задача — найти master-сервер в местной сети и с ним взаимодействовать. А его IP, понятное дело, никто заранее не скажет, да и он смениться может. В общем, прикинул я JS к носу и придумал фантастически идиотское решение, которое оказалось очень простым и эффективным: браузер обстукивает все 254 IP в той же сетке, где ему выдали адрес (.1, .2, ..., .154) в попытках загрузить некую уникальную картинку /master/momento.png Если удалось — значит, нашел мастер-сервер, и запоминает его IP в своем браузерном хранилище (а оно всегда у браузеров есть) и отныне работает по аяксу с этим хостом. Если хост лег — снова его ищет. Обстукивание 254 адресов происходит очень быстро и весело, весь процесс занимает пару секунд — нужный хост быстро отзывается, и всю остальную балалайку картинок мы просто грохаем, не дожидаясь загрузки, а браузер сам разберется, не маленький. Сам процесс, понятное дело, приятно виден на дисплее:

Теоретически конечно надо бы png для такой цели всякий раз создавать искусственно с SVG-шифровками внутри — для безопасности, чтоб избежать подделки. Но я решил не париться — сети там, говорят, закрытые, данные не сильно значимы, откуда там и зачем там взлом. Лучше бы мне подумать, какую бы фичу туда привинтить, чтобы послеживала, не подвис ли браузер на третью неделю работы, а если подвис, то перезапустить его или всё LXDE или просто restart сделать. Но думаю не особо напряженно, потому что через час поезд в Харьков (ребенка забирать от дедушки с бабушкой), еду на один световой день и везу кучу инструментов, чтоб бывшей теще поставить кондиционер. В Харькове +30... Дай бог пережить завтрашний день, всё успеть, просверлить и поставить, и вернуться с понедельничка в холодную Москву.

А чем вы развлекаетесь летом?



это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2016/08/20.html

Тэги: программирование

 


Самый-самый блог
Блогер Рыбалка
Рыбалка
по среднему баллу (5.00) в категории «Спорт»
Изменения рейтинга
Категория «Игры»
Взлеты Топ 5
+376
408
Parazit!
+375
407
ALEXRUS
+370
383
Remi_Etien_Le_Bo
+368
381
Memрhis
+365
382
_Kicker_
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.