мои авторские работы для спутниковых ресиверов на базе enigma2 (просьба, не размещать их на других ресурсах) все работы разнесены по темам, на первой странице обсуждаются текущие работы. АНОНИМНЫЕ ПОЛЬЗОВАТЕЛИ не могут оставлять коментарии
среда, 9 июля 2014 г.
вторник, 8 июля 2014 г.
Сканирование живых ip адресов, для IPTV. часть II
Для сканирования с помощью ресивера нам понадобится 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 для просмотра данного оператора и не зависеть от внешних ресурсов....
понедельник, 7 июля 2014 г.
Сканирование живых ip адресов, для IPTV. часть I
Здесь опишу по шагово, как сканировать живые ip для просмотра iptv, на примере провайдера Ростелеком.
нам потребуется программа для сканирования ip, я рекомендую Angry IP Scanner, скачать можно здесь http://angryip.org, программа freeware со всеми вытекающими.....
настраиваем программу:
а) нам надо указать, что бы выводились только те ip у которых открыт нужный нам порт
б) вводим номер порта, по которому будем искать ip, в нашем случае это 1234
в) вводим диапазон ip для поиска, от 212.164.0.0 до 212.164.255.255, что соответствует городу Новосибирск
г) сканируем, и получаем результат, сохраняем в файл
д) проверяем полученный результат через броузер, вводим в адресную строку например http://212.164.1.157:1234/status и получаем следующую картинку, означающую что udpxy удаленный работает по нужному нам порту
это вовсе не означает, что оно точно будет показывать, но где-то 80% живых ip будут показывать, и здесь же можно увидеть, сколько реально с этого ip смотрит людей...
далее создаем букет следующего типа:
и редактируем /etc/hosts и прописываем в него наш найденный ip, таким образом:
212.164.1.157 rostelecom rostelecom
отвечу сразу на вопросы которые могут возникнуть:
1. как часто надо сканировать и искать свежие ip
-- для провайдера Ростелеком, нужно сканировать каждый день, так ка данный оператор использует технологию ADSL а эта штука технологически требует смену ip раз в 24 часа, у других операторов ip живут месяцами
2. почему у разных операторов разные порты
-- крупные операторы используют преднастроеные приставки у которых udprxy настроены на один и тот же порт, мы в большинстве случаев видим открытые порты приставок, которые находятся перед NAT(перед роутером) или udprxy которое работает на самом роутере и разные порты у одного и тоже оператора может зависит от моделей приставок
нам потребуется программа для сканирования ip, я рекомендую Angry IP Scanner, скачать можно здесь http://angryip.org, программа freeware со всеми вытекающими.....
настраиваем программу:
а) нам надо указать, что бы выводились только те ip у которых открыт нужный нам порт
это вовсе не означает, что оно точно будет показывать, но где-то 80% живых ip будут показывать, и здесь же можно увидеть, сколько реально с этого ip смотрит людей...
далее создаем букет следующего типа:
#SERVICE 1:0:19:2F4A:C:70:1680000:0:0:0:http%3a//rostelecom%3a1234/udp/233.7.70.161%3a5000:MTV Live HD
#DESCRIPTION MTV Live HD
отвечу сразу на вопросы которые могут возникнуть:
1. как часто надо сканировать и искать свежие ip
-- для провайдера Ростелеком, нужно сканировать каждый день, так ка данный оператор использует технологию ADSL а эта штука технологически требует смену ip раз в 24 часа, у других операторов ip живут месяцами
2. почему у разных операторов разные порты
-- крупные операторы используют преднастроеные приставки у которых udprxy настроены на один и тот же порт, мы в большинстве случаев видим открытые порты приставок, которые находятся перед NAT(перед роутером) или udprxy которое работает на самом роутере и разные порты у одного и тоже оператора может зависит от моделей приставок
в следующей части, расскажу как проделывать это но уже с помощью ресивера
Перенос /etc/hosts на флешку
для тех кто экономит ресурс внутренней флешки
mkdir -p /media/usb/etc
cp -f /etc/hosts /media/usb/etc
rm -f /etc/hosts
ln -s /media/usb/etc/hosts /etc/hosts
добавил скрипт, поместить в ресивер, присвоить 755, выполнить
move_hosts.sh
mkdir -p /media/usb/etc
cp -f /etc/hosts /media/usb/etc
rm -f /etc/hosts
ln -s /media/usb/etc/hosts /etc/hosts
добавил скрипт, поместить в ресивер, присвоить 755, выполнить
move_hosts.sh
воскресенье, 6 июля 2014 г.
Подписаться на:
Сообщения (Atom)


