Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi и сети
Войти
Регистрация
Восстановить пароль
 
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
#1

Изменения настроек модема путём эмуляции браузера - Delphi

03.11.2016, 18:18. Просмотров 748. Ответов 17
Метки нет (Все метки)

Приветствую.
Уже как 10 дней пытаюсь написать программу планировщик для изменения настроек модема TP-Link TD-W8901N - точнее PPPoE Username и Password для переключения тарифа на дневной / ночной по времени. Раньше такую программу писал для модема TP Link TD-W8968, но там была другая версия прошивки т.е более новая.
С авторизацией в модеме разобрался, авторизация проходить точь в точь как в браузере.
Вот код для авторизации:
Кликните здесь для просмотра всего текста

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
procedure TForm1.Auth;
var
  Http  : TidHttp;
  Data1: TStringList;
begin
  try
   // IdHTTP Settings
    //Before GET
    Http := TIdHTTP.Create(Self);
    http.CookieManager:=IdCookieManager1;
    Http.AllowCookies := true;
    Http.HandleRedirects := true;
  //Request Headers
    Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
 //   Http.Request.AcceptEncoding:='gzip, deflate, sdch';
    Http.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
    Http.Request.Connection:='keep-alive';
    Http.Request.Host:='192.168.0.222';
    Http.Request.CustomHeaders.Add('Upgrade-Insecure-Requests: 1');
    Http.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36';
 
  //Authorize
    Data1 := TStringList.Create;
    Data1.Add('Login_Name=admin');
    Data1.Add('Login_Pwd= ');
    Data1.Add('timevalue=0');
    Data1.Add('tipsFlag=0');
    Data1.Add('uiWebLoginhiddenPassword=ff8aaaf03376a830d9e826f2fa4ea6e7');
    Data1.Add('uiWebLoginhiddenUsername=21232f297a57a5a743894a0e4a801fc3');
 
   Http.Get('http://192.168.0.222/');
  //Request Headers
  //Before Post
   // Http.Request.AcceptEncoding:='gzip, deflate';
    Http.Request.CacheControl:='max-age=0';
    Http.Request.ContentType:='application/x-www-form-urlencoded';
    Http.Request.CustomHeaders.Add('Origin: [url]http://192.168.0.222');[/url]
    Http.Request.Referer:='http://192.168.0.222/login_security.html';
    Http.Post('http://192.168.0.222/Forms/login_security_1',Data1);
    http.Get('http://192.168.0.222/basic/home_wan.htm');
 
  finally
    begin
    Data1.Free;
    Http.Free;
    end;
  end;
end;


А вот с сохранением настроек (т.е по нажатию на кнопку "save" в браузере) возникают проблемы.
Т.е когда в браузере нажимайте на кнопку "save" отправляется Post запрос с новыми настройками на страницу
"http://192.168.0.222/Forms/home_wan_1" (192.168.0.222 - это IP адрес модема).
Вот код моего Post запроса:
Кликните здесь для просмотра всего текста
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
procedure TForm1.sButton2Click(Sender: TObject);
var
  Http  : TidHttp;
  Data1: TStringList;
begin
  try
    http := TIdHTTP.Create(Self);
    http.CookieManager:=IdCookieManager1;
    http.AllowCookies := true;
    http.HandleRedirects := true;
    http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8';
    http.Request.AcceptEncoding:='gzip, deflate';
    http.Request.AcceptLanguage:='ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4';
    Http.Request.Host:='192.168.0.222';
    Http.Request.CustomHeaders.Add('Upgrade-Insecure-Requests: 1');
    http.Request.Connection:='keep-alive';
    Http.Request.CacheControl:='max-age=0';
    Http.Request.ContentType:='application/x-www-form-urlencoded';
    Http.Request.CustomHeaders.Add('Origin: [url]http://192.168.0.222');[/url]
    Http.Request.Referer:='http://192.168.0.222/login_security.html';
    http.Request.Host:='192.168.0.222';
    http.Request.UserAgent:='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36';
    http.Get('http://192.168.0.222/basic/home_wan.htm');
    http.Request.Referer:='http://192.168.0.222/basic/home_wan.htm';
Data1 := TStringList.Create;
Data1.Add('wan_PPPUsername=aa62-2268703');
Data1.Add('wan_PPPPassword=8703');
Data1.Add('Allow_Empty_Flag=1');
Data1.Add('Alwan_QoS=UBR');
Data1.Add('Alwan_VCI=33');
Data1.Add('Alwan_VPI=0');
Data1.Add('BridgeFlag=0');
Data1.Add('Check_PasswordFlag=0');
Data1.Add('Check_UsrPsw_Flag= 0');
Data1.Add('Empty_UsrPsw_Flag= 0');
Data1.Add('HiddenFlag=0');
Data1.Add('PageLockValue=0');
Data1.Add('PPPoEBIStatus=0');
Data1.Add('wanConTypeFlag=0');
Data1.Add('wanIGMPQitFlag=0');
Data1.Add('wanIPVersionRadio=0');
Data1.Add('wanTypeRadio=Two');
Data1.Add('wanVCFlag=0');
Data1.Add('wan_ConnectSelect=Connect_Keep_Alive');
Data1.Add('WAN_DefaultRoute=1');
Data1.Add('wan_IGMP=IGMP v2');
Data1.Add('wan_IPv6DHCP=1');
Data1.Add('wan_IPv6DHCPPDEnable=1');
Data1.Add('wan_IPv6DSLiteEnable=0');
Data1.Add('wan_IPv6DSLiteMode=0');
Data1.Add('wan_IPv6MLDProxy=1');
Data1.Add('wan_NAT= Enable');
Data1.Add('wan_PCR=0');
Data1.Add('wan_PPPEncap=PPPoE LLC');
Data1.Add('wan_PPPGetIP=0');
Data1.Add('wan_PPPServicename=UzOnline');
Data1.Add('wan_PVCO_Flag=0');
Data1.Add('wan_RemoteAddress=::');
Data1.Add('wan_RIPDirection=Both');
Data1.Add('wan_RIPVersion=RIP2-B');
Data1.Add('wan_TCPMSS=1400');
Data1.Add('wan_TCPMTU=1480');
Data1.Add('wan_VC=PVC0');
Data1.Add('wan_VCStatus=1');
Http.Post('http://192.168.0.222/Forms/home_wan_1',Data1);
  finally
    http.Free;
    data1.Free;
  end;
end;

В скриншотах всё объяснил как мог, прошу посмотреть на них по очереди и помочь решить проблему..
Так же я на офф. сайте производителя нашел программу для настройки этого модема TP Link Easy Setup Assistant, попробовал про анализировать его запросы но сниффер HTTP Analyzer не смог уловить запросы этой программы.
Скорее всего это программа использует другой протокол для передачи данных.
Вы последняя надежда...
Спасибо за ранее.
Скриншоты:
Кликните здесь для просмотра всего текста

Вот так сохраняются настройки через браузер:

Это пример того что авторизация в модеме через мою программу удался:

Вот HTTP заголовки и POST запрос браузера:


Вот HTTP заголовки и POST запрос моей программы:



0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2016, 18:18
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Изменения настроек модема путём эмуляции браузера (Delphi):

Реализация эмуляции нажатий клавиатуры
Посоветуйте, как можно реализовать управление программой (которая управляется с...

Раздача WIFI путём использования 4G модема
Добрый день! Поступил такой вопрос. Есть 2 4g роутера ZTE и Huawei. Вопрос,...

Внести изменения в реестр для эмуляции Webbrowser
Здравствуйте. Необходимо установить для webbrowser использование 9-го режима...

Изменение настроек модема програмно
Добрый день, я работаю скажем так с модемами а именно их проверяю, и хотелось...

полное описание настроек модема
доброго времени суток, уважаемые форумчане! давно пользуюсь инетом через...

Не могу зайти в интерфейс настроек модема!
Раньше модем заходил нормально в настройки, а сейчас не может... Пробовал на 3х...

17
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
06.11.2016, 12:40  [ТС] #2
Поднимаю тему, проблема всё еще не решена..
Неужели никто не может мне помочь?
0
FirmFreez
1 / 1 / 1
Регистрация: 09.05.2015
Сообщений: 31
06.11.2016, 18:51 #3
Цитата Сообщение от Insendio Посмотреть сообщение
Поднимаю тему, проблема всё еще не решена..
Неужели никто не может мне помочь?
Возобнови скриншоты. Я понял задачу в общем. Писал что то подобное под D-link dir615.
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
10.11.2016, 11:16  [ТС] #4
FirmFreez, вот загрузил.
0
Миниатюры
Изменения настроек модема путём эмуляции браузера   Изменения настроек модема путём эмуляции браузера   Изменения настроек модема путём эмуляции браузера  

Изменения настроек модема путём эмуляции браузера   Изменения настроек модема путём эмуляции браузера   Изменения настроек модема путём эмуляции браузера  

Изменения настроек модема путём эмуляции браузера  
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
11.11.2016, 11:00  [ТС] #5
Проблема еще не решена, жду помощи, попробовал решить задачу всеми способами что знаю, но не получается...
0
xeonz
608 / 185 / 28
Регистрация: 16.05.2014
Сообщений: 1,386
11.11.2016, 15:07 #6
А почему у вас имя куки разное?
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
12.11.2016, 09:14  [ТС] #7
xeonz, они одинаковые, просто google chrome, меняет их места.
0
xeonz
608 / 185 / 28
Регистрация: 16.05.2014
Сообщений: 1,386
13.11.2016, 09:19 #8
На третьем скрине кука С0, на пятом С1. Разные же.
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
18.11.2016, 07:12  [ТС] #9
xeonz, я же говорю вам одинаковые, вы хорошенько посмотрите, в этом скрине всё начинается C0 - начинается с 212 и закончивается на fc3, С1 - начинается с ff8 и заканчивается на 6e7, на обоих скринах так же, просто C0 и C1 местами поменялись и всё у них даже значения такие же остались...

Поднимаю тему, решения не найдена !
0
xeonz
608 / 185 / 28
Регистрация: 16.05.2014
Сообщений: 1,386
18.11.2016, 08:19 #10
Цитата Сообщение от Insendio Посмотреть сообщение
на обоих скринах так же, просто C0 и C1 местами поменялись
Не знаю, я не вижу где также. Вижу что на 3м скрине есть только кука С0, а на пятом только С1 ))))
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
18.11.2016, 21:39  [ТС] #11
xeonz, Специально для вас сделал еще один скриншот) с левой стороны 3-й скрин(куки браузера), с правой 5-й скрин(куки моей программы)
фиолетовым отметил C0, а желтым C1.
Надеюсь теперь сможете помочь)
0
Миниатюры
Изменения настроек модема путём эмуляции браузера  
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
04.12.2016, 00:58  [ТС] #12
Благодарю всех кто пытался помочь с этим, нашел более легкий и малоизвестный способ с помощью которого можно легко изменить PPPoE логин и пароль и много что сделать с модемом.
1)И так для этого оказывается в Windows'е включаем telnet.
2)заходим в cmd -> telnet -> 192.168.0.1(т.е айпи модема)
3)вводим пароль от админа модема
4)wan node ppp username abc(новый PPPoE логин)
5)wan node ppp password 123(новый PPPoE пароль)
6)wan adsl reset (перезагружаем ADSL подключения)
в вложения добавил вес список доступных telnet команд для данного модели и других похожих моделей.
0
Вложения
Тип файла: pdf TrendChip_CI_Command_Reference_Manual_v1.4.pdf (989.8 Кб, 5 просмотров)
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
04.12.2016, 00:58  [ТС] #13
Лучший ответ Сообщение было отмечено tezaurismosis как решение

Решение

Благодарю всех кто пытался помочь с этим, нашел более легкий и малоизвестный способ с помощью которого можно легко изменить PPPoE логин и пароль и много что сделать с модемом.
1)И так для этого оказывается в Windows'е включаем telnet.
2)заходим в cmd -> telnet -> 192.168.0.1(т.е айпи модема)
3)вводим пароль от админа модема
4)wan node ppp username abc(новый PPPoE логин)
5)wan node ppp password 123(новый PPPoE пароль)
6)wan adsl reset (перезагружаем ADSL подключения)
в вложения добавил вес список доступных telnet команд для данного модели и других похожих моделей.
0
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 69
Записей в блоге: 2
04.12.2016, 14:41 #14
"В нашем уезде был аналогичный случай"
Логинюсь к роутеру на веб интерфейс, меняю настройки, жму "Save", но настройки не сохраняются.
Захожу через другой браузер - всё работает как надо.
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
05.12.2016, 15:12  [ТС] #15
AVolkof,не понял как ваше сообщения относится к теме.
0
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 69
Записей в блоге: 2
05.12.2016, 15:31 #16
1) Если даже у "обычных" браузеров есть какие-то проблемы, то эмулировать работу браузера не так просто.
Через телнет однозначно надежнее. Можно использовать Indy, кстати.
2) Я не знаю как Вы реализовали обмен по HTTP, но возможно смена UserAgent-a поможет.
0
Dryg
71 / 66 / 35
Регистрация: 09.04.2009
Сообщений: 351
Записей в блоге: 1
07.12.2016, 15:24 #17
Может не по теме:

В свое время я лазил в своем tplink и понял, что там есть подобие token ключей и они меняются при каждом обновлении страницы. что даже у тебя будет верный запрос, но не верный ключ, то будешь получать ошибку.
0
Insendio
25 / 25 / 8
Регистрация: 02.10.2014
Сообщений: 149
08.12.2016, 11:05  [ТС] #18
AVolkof, Вот именно Telnet и надежнее и легче реализуется чем эмуляция некоторых запросов через HTTP, я просто раньше не знал про этот козырь, а смена UserAgent'a не помогла... HTTP запросы и заголовки были идентичны...
Dryg, Спасибо за подсказку, но я не 1й раз пишу такую программу и раньше писал программы для авторизации и работы с сайтами, и с token'ом очень хорошо знаком.)
0
08.12.2016, 11:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2016, 11:05
Привет! Вот еще темы с решениями:

Написать функции переворота списка путём изменения ссылок
Помогите решить такую задачу. Я создаю односвязный список, ввожу в него...

не сохраняются изменения настроек
Установила Фряху. Добилась на ней рабочего стола и интернета. Всё было хорошо,...

Копирование настроек дополнения NoScript браузера Firefox
Как перенести настройки этого дополнения с одного компьютера на адругой?

Нужен ли глобальный сброс всех настроек браузера?
Иногда в начале CSS настроек присутствует общий сброс типа html, body, div,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru