Для сканирования с помощью ресивера нам понадобится curl и cron, так как операция сканирования одного диапазона занимает около 16 часов, и желательно проделывать эту операцию в фоновом режиме...
curl_7.24.0-r0_mips32el.ipk
cURL — свободная , кроссплатформенная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL
установка:
>>opkg update
>>opkg install /tmp/curl_7.24.0-r0_mips32el.ipk
>>opkg install busybox-cron
>>reboot
описание возможных команд curl http://osxh.ru/terminal/command/curl
и так имеем диапазон провайдера Ростелеком от 212.164.0.0 до 212.164.255.255, запускаем строку поиска:
>>curl -I -m1 212.164.[0-255].[0-255]:1234
где:
[0-255] диапазон адресов от 0 до 255, curl будет перебирать каждый адрес
-I -- читать заголовки (HEAD) доступные по указному ip и порту
-m1 -- Задает максимальное время в секундах выделенное на операцию, в данном случае стоит 1 секунда, если ip и порт не отвечает, запрашиваем следующее ip...
получаем в терминале такую картинку:
[205/65536]: 212.164.0.204:1234 --> <stdout>
--_curl_--212.164.0.204:1234
curl: (28) Connection timed out after 1001 milliseconds
[206/65536]: 212.164.0.205:1234 --> <stdout>
--_curl_--212.164.0.205:1234
curl: (28) Connection timed out after 1001 milliseconds
[207/65536]: 212.164.0.206:1234 --> <stdout>
--_curl_--212.164.0.206:1234
curl: (28) Connection timed out after 1001 milliseconds
[208/65536]: 212.164.0.207:1234 --> <stdout>
--_curl_--212.164.0.207:1234
curl: (28) Connection timed out after 1001 milliseconds
понятное дело сидеть перед терминалом и высматривать рабочий ip, удовольствие мало приятное, посему
запускаем curl с перенаправленным выводом в файл, например /tmp/rostelecom
>>curl -I -m1 212.164.[0-255].[0-255]:1234 >/tmp/rostelecom
получаем в файле /tmp/rostelecom, приблизительно такое:
--_curl_--212.164.2.80:1234
--_curl_--212.164.2.81:1234
--_curl_--212.164.2.82:1234
HTTP/1.1 200 OK
Content-Type:application/octet-stream
--_curl_--212.164.2.83:1234
--_curl_--212.164.2.84:1234
строка перед HTTP/1.1 200 OK является искомым результатом
работает это удовольствие 16 часов, что малоприятно, поэтому можно запустить несколько копий, разделив между ними диапазон
>>curl -I -m1 212.164.[0-255].[0-31]:1234 >/tmp/rostelecom1
>>curl -I -m1 212.164.[0-255].[32-63]:1234 >/tmp/rostelecom2
...
curl -I -m1 212.164.[0-255].[224-255]:1234 >/tmp/rostelecom16
сам cull потребляет мизерное количество ресурсов, я например использую 16 одновременно работающих, и вся операция завершается где-то за час
Внимание:
если запускаем поиск из командной строки, то при закрытии окна терминала завершится выполнение вашей команды, во избежание этого используем чудную утилиту nohup и наша строка запуска имеет следующий вид.
>>nohup curl -I -m1 212.164.[0-255].[0-31]:1234 >/tmp/rostelecom1 >/dev/null &
в таком виде все будет работать в фоне, соответственно можно запустить одновременно несколько подобных задач
теперь перейдем к обработке полученных результатов, имеем файл /tmp/rostelecom с таким содержимым:
--_curl_--212.164.2.80:1234
--_curl_--212.164.2.81:1234
--_curl_--212.164.2.82:1234
HTTP/1.1 200 OK
Content-Type:application/octet-stream
--_curl_--212.164.2.83:1234
--_curl_--212.164.2.84:1234
нам нужно вычленить все ip после которых идет строка HTTP/1.1 200 OK, для этого мы используем одну из величайших вещей которые есть в linux/unix системах, а точнее потоковый редактор SED.
sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
Первоначально был написан как UNIX-утилита Ли Макмэхоном (англ. Lee E. McMahon) из Bell Labs в 1973—74 годах. Сейчас sed доступен фактически для любой операционной системы, поддерживающей работу с командной строкой.
https://ru.wikipedia.org/wiki/Sed
>>sed -i -n '/200 OK/{g;1!p;};h' /tmp/rostelecom
получаем список рабочих ip
--_curl_--212.164.1.157:1234
--_curl_--212.164.2.82:1234
--_curl_--212.164.3.25:1234
--_curl_--212.164.3.139:1234
--_curl_--212.164.3.222:1234
.........
теперь вычленяем сам ip
>>sed -i -n 's/^.*--_curl_--\(\([0-9].\{1,3\}\)\{3\}[0-9]\{1,3\}\).*:1234/\1/p' /tmp/rostelecom
получаем:
212.164.1.157
212.164.2.82
212.164.3.25
212.164.3.139
212.164.3.222
.......
создав на основании вышеизложенного скрипт и запуская его с помощью cron мы можем полностью автоматизировать получение живых ip для просмотра данного оператора и не зависеть от внешних ресурсов....
curl_7.24.0-r0_mips32el.ipk
cURL — свободная , кроссплатформенная служебная программа командной строки, позволяющая взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL
установка:
>>opkg update
>>opkg install /tmp/curl_7.24.0-r0_mips32el.ipk
>>opkg install busybox-cron
>>reboot
описание возможных команд curl http://osxh.ru/terminal/command/curl
и так имеем диапазон провайдера Ростелеком от 212.164.0.0 до 212.164.255.255, запускаем строку поиска:
>>curl -I -m1 212.164.[0-255].[0-255]:1234
где:
[0-255] диапазон адресов от 0 до 255, curl будет перебирать каждый адрес
-I -- читать заголовки (HEAD) доступные по указному ip и порту
-m1 -- Задает максимальное время в секундах выделенное на операцию, в данном случае стоит 1 секунда, если ip и порт не отвечает, запрашиваем следующее ip...
получаем в терминале такую картинку:
[205/65536]: 212.164.0.204:1234 --> <stdout>
--_curl_--212.164.0.204:1234
curl: (28) Connection timed out after 1001 milliseconds
[206/65536]: 212.164.0.205:1234 --> <stdout>
--_curl_--212.164.0.205:1234
curl: (28) Connection timed out after 1001 milliseconds
[207/65536]: 212.164.0.206:1234 --> <stdout>
--_curl_--212.164.0.206:1234
curl: (28) Connection timed out after 1001 milliseconds
[208/65536]: 212.164.0.207:1234 --> <stdout>
--_curl_--212.164.0.207:1234
curl: (28) Connection timed out after 1001 milliseconds
понятное дело сидеть перед терминалом и высматривать рабочий ip, удовольствие мало приятное, посему
запускаем curl с перенаправленным выводом в файл, например /tmp/rostelecom
>>curl -I -m1 212.164.[0-255].[0-255]:1234 >/tmp/rostelecom
получаем в файле /tmp/rostelecom, приблизительно такое:
--_curl_--212.164.2.80:1234
--_curl_--212.164.2.81:1234
--_curl_--212.164.2.82:1234
HTTP/1.1 200 OK
Content-Type:application/octet-stream
--_curl_--212.164.2.83:1234
--_curl_--212.164.2.84:1234
строка перед HTTP/1.1 200 OK является искомым результатом
работает это удовольствие 16 часов, что малоприятно, поэтому можно запустить несколько копий, разделив между ними диапазон
>>curl -I -m1 212.164.[0-255].[0-31]:1234 >/tmp/rostelecom1
>>curl -I -m1 212.164.[0-255].[32-63]:1234 >/tmp/rostelecom2
...
curl -I -m1 212.164.[0-255].[224-255]:1234 >/tmp/rostelecom16
сам cull потребляет мизерное количество ресурсов, я например использую 16 одновременно работающих, и вся операция завершается где-то за час
Внимание:
если запускаем поиск из командной строки, то при закрытии окна терминала завершится выполнение вашей команды, во избежание этого используем чудную утилиту nohup и наша строка запуска имеет следующий вид.
>>nohup curl -I -m1 212.164.[0-255].[0-31]:1234 >/tmp/rostelecom1 >/dev/null &
в таком виде все будет работать в фоне, соответственно можно запустить одновременно несколько подобных задач
теперь перейдем к обработке полученных результатов, имеем файл /tmp/rostelecom с таким содержимым:
--_curl_--212.164.2.80:1234
--_curl_--212.164.2.81:1234
--_curl_--212.164.2.82:1234
HTTP/1.1 200 OK
Content-Type:application/octet-stream
--_curl_--212.164.2.83:1234
--_curl_--212.164.2.84:1234
нам нужно вычленить все ip после которых идет строка HTTP/1.1 200 OK, для этого мы используем одну из величайших вещей которые есть в linux/unix системах, а точнее потоковый редактор SED.
sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язык программирования), применяющий различные предопределённые текстовые преобразования к последовательному потоку текстовых данных.
Первоначально был написан как UNIX-утилита Ли Макмэхоном (англ. Lee E. McMahon) из Bell Labs в 1973—74 годах. Сейчас sed доступен фактически для любой операционной системы, поддерживающей работу с командной строкой.
https://ru.wikipedia.org/wiki/Sed
>>sed -i -n '/200 OK/{g;1!p;};h' /tmp/rostelecom
получаем список рабочих ip
--_curl_--212.164.1.157:1234
--_curl_--212.164.2.82:1234
--_curl_--212.164.3.25:1234
--_curl_--212.164.3.139:1234
--_curl_--212.164.3.222:1234
.........
теперь вычленяем сам ip
>>sed -i -n 's/^.*--_curl_--\(\([0-9].\{1,3\}\)\{3\}[0-9]\{1,3\}\).*:1234/\1/p' /tmp/rostelecom
получаем:
212.164.1.157
212.164.2.82
212.164.3.25
212.164.3.139
212.164.3.222
.......
создав на основании вышеизложенного скрипт и запуская его с помощью cron мы можем полностью автоматизировать получение живых ip для просмотра данного оператора и не зависеть от внешних ресурсов....
Неплохо бы на этих наработках собрать плагин для поиска рабочих IP и автоматической отправки полученных результатов в hosts.
ОтветитьУдалитьИ неплохо если он не будет прикреплен к одному провайдеру и диапазон адресов будет вводится вручную и этот профиль будет запоминаться и выводится по требованию.
ну одного универсального плагина в природе нет, есть парочка плгаинов провайдеро-ориентированных, для личного пользования, и тут описана только вершина, есть еще много провайдерозависмых штук, например для Ростелекома, после сканирования находится обычно от 200 до 50 живых ip в зависимости от диапазона поиска, и эти ip в течении дня умирают, я решил для себя эту проблему, а остальным желающим могу пожелать терпения и удачи)))
ОтветитьУдалитьps плагинов в паблике не будет, из-за того чтобы не стимулировать операторов начать бороться с подобными штуками, сделать они могут запросто и тогда даже в интернете не будет ресурсов которые раздают живые ip и оборудование у них не резиновое, у локальных провайдеров оно прямо скажем хлипкое, любая дополнительная нагрузка вызывает проблемы с просмотром, самый мощный это Ростелеком и рухнуть он конечно не должен, а если и рухнет то не велика беда, для меня лично.... а вот остальные гораздо более интересные провы, у которых есть например кинозалы хд от трико и еще пару интересных кино каналов, будет жалко....
Ну судя по всему очень скоро iptv-провайдеры тоже будут массово вводить кодирование. Знаю что мой провайдер вовсю тестирует DRM, у Ростелекома тоже видел.
ОтветитьУдалитьТвою философию понимаю! Может ты и прав.
ОтветитьУдалитьесли честно, то мне очень слабо в это верится, вещают они в основном в свои локальные сети, оплата за услугу относительно невелика, менять свое оборудование и клиентское вряд ли кто то будет, слишком затратно, они в основной своей массе не в состоянии построить нормальную современную сетевую инфраструктуру, а еще и кодирование, сомневаюсь, не в ближайшей перспективе, ограничить сторонний доступ они могут и без этого, например не выпуская поток за пределы определенных (своих) ip и еще есть куча способов и методов, кодировать вероятно будут новые провайдеры услуг, которые будут броадкастить на любые сети, но это совсем другая история...
ОтветитьУдалить@Пилишек Александр, это не философия, а меркантильный интерес, если он и не выражается в денежных знаках, он все равно меркантилен, все для себя любимого и с наименьшим геморроем....
ОтветитьУдалитьПросто каналы, спутниковые операторы будут лабировать кодирование. Иначе очень уж им обидно. Останутся в открытом виде то что dvb-t2 мультиплексах, да ерунда всякая.
ОтветитьУдалитьинтересно, а причем тут спутник? их мало кто спрашивает, особенно на соседней территории, в свете принятия закона о запрете рекламы на платных каналах, вообще возможна смерть телевидения в том виде в котором мы к нему привыкли останется как в совке 4 канала показывающих съезд кпсс....
ОтветитьУдалить