Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi и сети

Войти
Регистрация
Восстановить пароль
 
 
Insendio
24 / 24 / 8
Регистрация: 02.10.2014
Сообщений: 149
#1

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

03.11.2016, 18:18. Просмотров 713. Ответов 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):

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

Внести изменения в реестр для эмуляции Webbrowser - C#
Здравствуйте. Необходимо установить для webbrowser использование 9-го режима ie. Я для этого создал .reg-файл со следующим содержанием: ...

полное описание настроек модема - Сетевое оборудование
доброго времени суток, уважаемые форумчане! давно пользуюсь инетом через модем (zyxel, а сейчас glitel) но это не особо важно. как...

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

Не могу зайти в интерфейс настроек модема! - Сетевое оборудование
Раньше модем заходил нормально в настройки, а сейчас не может... Пробовал на 3х разных браузерах(IE, Opera, Chrome) и никакого эффекта. в...

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

17
AVolkof
2 / 2 / 0
Регистрация: 02.01.2016
Сообщений: 68
Записей в блоге: 2
05.12.2016, 15:31 #16
1) Если даже у "обычных" браузеров есть какие-то проблемы, то эмулировать работу браузера не так просто.
Через телнет однозначно надежнее. Можно использовать Indy, кстати.
2) Я не знаю как Вы реализовали обмен по HTTP, но возможно смена UserAgent-a поможет.
0
Dryg
69 / 64 / 19
Регистрация: 09.04.2009
Сообщений: 349
Записей в блоге: 1
07.12.2016, 15:24 #17
Может не по теме:

В свое время я лазил в своем tplink и понял, что там есть подобие token ключей и они меняются при каждом обновлении страницы. что даже у тебя будет верный запрос, но не верный ключ, то будешь получать ошибку.
0
Insendio
24 / 24 / 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
Привет! Вот еще темы с ответами:

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

Нужен ли глобальный сброс всех настроек браузера? - HTML, CSS
Иногда в начале CSS настроек присутствует общий сброс типа html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p,...

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

Установка пароля для изменения настроек - Windows 7
Здразствуйте, вот на mint и на ubuntu можно поставить пароль на установку приложений, изменение настроек и т.д. Как это сделать в...


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

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

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