Curl и bash написание парсера

Изображение пользователя PostaL.

Добрый день народ!
Ростелеком с недавних времен выдает серый IP а не белый , с dynamic dns само собой вяжется левый IP, а не реальный.

Так вот решил заморочиться с парсером, выковыривать IP адрес с прошивки и уже передавать на duckdns. Вроде бы написал парсер верно ( сразу оговорюсь первый парсер в жизни ), но на выводе после удачной авторизации вижу вот такую кракозяблу:

Собственно код парсера:
curl -H "Content-Type: text/html; charset=UTF-8; --basic -u  "USER:PASSWORD"  "http://192.168.1.1"

+3
dm - 6 Март, 2018 - 23:40
Изображение пользователя dm.

Как мне кажется, дело в Content-Encoding: gzip. То есть страница отдается в сжатом виде.

Для распаковки "на лету" попробуйте с ключём --compressed

Что-то вроде этого:

curl --compressed -H "Content-Type: text/html; charset=UTF-8; --basic -u  "USER:PASSWORD"  "http://192.168.1.1"

0
PostaL - 7 Март, 2018 - 23:55
Изображение пользователя PostaL.

Спасибо огромное , помогло !!!

0
PostaL - 8 Март, 2018 - 22:59
Изображение пользователя PostaL.

Опять засада , не весь контент получаю с парсинга , я так понимаю часть элементов JS отображается только в браузере.

0
lord_i - 9 Март, 2018 - 00:55
Изображение пользователя lord_i.

Я что то совсем ничего не понимаю. Смысл данного действия в чем?
Получить серый адрес из роутера? И что с ним делать потом?
Для всех сервисов динамических днс он явно не годится.
Более логично в этих сервисах использовать как раз тот адрес, который на первом скрине 2IP,но совершенно не факт что с этого адреса возможно попасть на Ваш компьютер.
Потому как он (компьютер) за натом и без проброса портов это нереальная задача, так как это (пробросить порт) может сделать только провайдер.
Походу решение одно - покупать белый адрес. На что выдачей серых адресов какбэ ненавязчиво намекает Ваш ISP.

0
PostaL - 9 Март, 2018 - 11:06
Изображение пользователя PostaL.

Как раз тут ситуация такая что ip с сайта 2ip это не реальный адрес моего PPPoE подключения, а адрес роутера это реальный адрес к которому можно подключиться для чего либо.

0
lord_i - 9 Март, 2018 - 12:35
Изображение пользователя lord_i.

Как раз таки 100.106.82.167 самый настоящий серый адрес.
И никуда Вы по нему из глобальной сети не попадете.
whois 100.106.82.167

#
# ARIN WHOIS data and services are subject to the Terms of Use
# available at: https://www.arin.net/whois_tou.html
#
# If you see inaccuracies in the results, please report at
# https://www.arin.net/public/whoisinaccuracy/index.xhtml
#


#
# The following results may also be obtained via:
# https://whois.arin.net/rest/nets;q=100.106.82.167?showDetails=true&showARIN=false&showNonArinTopLevelNet=false&ext=netref2
#

NetRange:       100.64.0.0 - 100.127.255.255
CIDR:           100.64.0.0/10
NetName:        SHARED-ADDRESS-SPACE-RFCTBD-IANA-RESERVED
NetHandle:      NET-100-64-0-0-1
Parent:         NET100 (NET-100-0-0-0-0)
NetType:        IANA Special Use
...


К частным "серым" адресам относятся IP-адреса из следующих подсетей:
От 10.0.0.0 до 10.255.255.255 с маской 255.0.0.0 или /8
От 172.16.0.0 до 172.31.255.255 с маской 255.240.0.0 или /12
От 192.168.0.0 до 192.168.255.255 с маской 255.255.0.0 или /16
От 100.64.0.0 до 100.127.255.255 с маской подсети 255.192.0.0 или /10; данная подсеть рекомендована согласно rfc6598 для использования в качестве адресов для CGN (Carrier-Grade NAT)

Так что занятие с парсингом - бесполезное.
Если не верите - попробуйте ручками забить этот адрес в динднс сервис (вполне возможно облом ждет уже на этом этапе) и потом, с устройства, не находящегося в Вашей локальной сети к нему обратиться. Сэкономите себе время :)

0
PostaL - 9 Март, 2018 - 12:51
Изображение пользователя PostaL.

У меня OpenVPN сервер развернут , в конфиге сейчас прописан адрес подключения у клиентов xxxx.duckdns.org. Если прописываешь IP адрес с роутера то клиент без проблем подключается , если с сайта 2ip (который по автомату сопоставляет IP адрес моему домену xxxxx.duckdns.org) подключения не происходит. Ещё принудительно сопоставлял ip адрес роутера домену xxxxx.duckdns.org и все работает.
По информации с duckdns.org установка linux cron
echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=10.112.333.222" | curl -k -o ~/duckdns/duck.log -K -
Где 10.112.333.222 это адрес который я руками ввел в скрипт, для этого я и задумал парсер. Что бы руками не вводить.

0
lord_i - 9 Март, 2018 - 13:17
Изображение пользователя lord_i.

Клиент откуда Вы проверяете? Из той же сети, где OpenVPN сервер находится?
Да , так будет работать.
А вот если попробовать это сделать из интернета - ничего не получится.

0
MacLeod - 10 Март, 2018 - 01:50
Изображение пользователя MacLeod.

Уважаемый lord_i вам все верно объяснил, посмотрите внимательно на схему:

Если на имя postal.duckdns.org будет резолвиться адрес 100.x.x.x - ни один внешний маршрутизатор не сможет направить подключение к вам, ибо диапазон - частный.
Если на имя postal.duckdns.org будет резолвиться адрес 62.183.x.x - роутер провайдера должен будет пробрасывать порты непосредственно на ваш роутер. С очень большой долей вероятности он этого не делает.

0
PostaL - 10 Март, 2018 - 12:17
Изображение пользователя PostaL.

MacLeod и lord_i так и получилось , когда ситуация с переходом с белых на серые IP произошла сразу решил буксовать с решением проблем. Попробовал по IP роутера и получилось (из своей сети ). И пошел буксовать дальше. Тем не менее всем спасибо за комментарии. Получается единственный выход белая статика ?

0
MacLeod - 10 Март, 2018 - 12:44
Изображение пользователя MacLeod.

Ага. Еще можно попробовать напоить одного из админов провайдера пивом, правда, результат непредсказуем...

0
PostaL - 10 Март, 2018 - 12:47
Изображение пользователя PostaL.

Опасно, они мне как то раз роутер по МАК адресу заблочили.

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры