санчил
Client
- Регистрация
- 15.04.2016
- Сообщения
- 334
- Благодарностей
- 60
- Баллы
- 28
да есть! скрипт выше смотритеТоже интересует этот вопрос
Спасибо
да есть! скрипт выше смотритеТоже интересует этот вопрос
Спасибо
Написал в личкуТоже интересует этот вопрос
Спасибо
<?xml version="1.0" encoding="UTF-8"?><request><Username>admin</Username><Password> ??? </Password><password_type>4</password_type></request>
Подскажи и мне пожалуйста. Очень нужно. Модем хуавей E3372. Надо быстро ребутать и айпи менять. Если можно както 4g чтобы был но если быстро только с 3г то пусть. Спасибо заранее. Оч нужно. Под виндуНаписал в личку
У меня прекрасно работает шаблон из этой ветки .Подскажи и мне пожалуйста. Очень нужно. Модем хуавей E3372. Надо быстро ребутать и айпи менять. Если можно както 4g чтобы был но если быстро только с 3г то пусть. Спасибо заранее. Оч нужно. Под винду
// Сообщение в лог
project.SendWarningToLog("", "Переподключение сети!", true);
string protocol = project.Variables["Protocol"].Value; // http:// или socks5://
string proxy = project.Variables["Proxy"].Value;
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string host = project.Variables["proxy_host"].Value; // например, 192.168.1.1
// GET Получаем токен
var resultGet = ZennoPoster.HttpGet(
"http://" + host + "/api/webserver/SesTokInfo",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
string.Empty,
userAgent,
true,
5
);
// Парсим Set-Cookie и csrf_token
Match matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)");
Match matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)");
if (!matchCookie.Success || !matchCsrf_token.Success)
return null;
string cookies = matchCookie.Value;
string csrf_token = matchCsrf_token.Value;
// POST Отключаем передачу данных
var resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/dialup/mobile-dataswitch",
"<request><dataswitch>0</dataswitch></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
cookies,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + csrf_token,
}
);
Thread.Sleep(3 * 1000);
// GET Получаем токен
resultGet = ZennoPoster.HttpGet(
"http://" + host + "/api/webserver/SesTokInfo",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
string.Empty,
userAgent,
true,
5
);
// Парсим Set-Cookie и csrf_token
matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)");
matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)");
if (!matchCookie.Success || !matchCsrf_token.Success)
return null;
cookies = matchCookie.Value;
csrf_token = matchCsrf_token.Value;
// POST Переключение на 3g
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/net/net-mode",
"<request><NetworkMode>02</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>800C5</LTEBand></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
cookies,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + csrf_token,
}
);
Thread.Sleep(3 * 1000);
// GET Получаем токен
resultGet = ZennoPoster.HttpGet(
"http://" + host + "/api/webserver/SesTokInfo",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
string.Empty,
userAgent,
true,
5
);
// Парсим Set-Cookie и csrf_token
matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)");
matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)");
if (!matchCookie.Success || !matchCsrf_token.Success)
return null;
cookies = matchCookie.Value;
csrf_token = matchCsrf_token.Value;
// POST Переключение на 4g-3g lte-UMTS
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/net/net-mode",
"<request><NetworkMode>03</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>800C5</LTEBand></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
cookies,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + csrf_token,
}
);
Thread.Sleep(3 * 1000);
// GET Получаем токен
resultGet = ZennoPoster.HttpGet(
"http://" + host + "/api/webserver/SesTokInfo",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
string.Empty,
userAgent,
true,
5
);
// Парсим Set-Cookie и csrf_token
matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)");
matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)");
if (!matchCookie.Success || !matchCsrf_token.Success)
return null;
cookies = matchCookie.Value;
csrf_token = matchCsrf_token.Value;
// POST Включаем передачу данных
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/dialup/mobile-dataswitch",
"<request><dataswitch>1</dataswitch></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
cookies,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + csrf_token,
}
);
Добрый день. Можете поделится скриптом?) Я смог залогиниться но вот что дальше делать не могу понять.(Почти сам разобрался, но остался один вопрос по логике:
1. Получаем базовый SesInfo и TokInfo
2. С помощью них делаем запрос на авторизацию по паролю, получаем три токена:
и новый SessionID (уже получается "админский")
- __RequestVerificationTokenone
- __RequestVerificationTokentwo
- __RequestVerificationToken
3. Для следующего запроса используем "админский" SessionID. Но вот какой токен использовать из трех? Или на каждый запрос нужно получать новый токен?
Обновление. Все же добил этот вопрос, логика крайне проста. За час смог ее воспроизвести на C#, с учетом что я его абсолютно не знаю.
1. Получаем базовый SesInfo и TokInfo
2. Запрос на авторизацию. В качестве кук - SesInfo, в заголовке TokInfo
3. С ответа парсим SessionID
4. Запрашиваем опять SesInfo и TokInfo, в качестве куки SessionID
5. Запрос на выполнение команды. В качестве куки SessionID из п.3, в заголовок TokInfo из п.4
Лично проверил на модеме 8372h. Смену ip сделал циклом Выключаем мобильные данные - Режим только 3G - Режим только LTE - включение мобильных данных. С учетом задержек в коде, смена ip занимает около 10 секунд
Дайте снипет плиз.Почти сам разобрался, но остался один вопрос по логике:
1. Получаем базовый SesInfo и TokInfo
2. С помощью них делаем запрос на авторизацию по паролю, получаем три токена:
и новый SessionID (уже получается "админский")
- __RequestVerificationTokenone
- __RequestVerificationTokentwo
- __RequestVerificationToken
3. Для следующего запроса используем "админский" SessionID. Но вот какой токен использовать из трех? Или на каждый запрос нужно получать новый токен?
Обновление. Все же добил этот вопрос, логика крайне проста. За час смог ее воспроизвести на C#, с учетом что я его абсолютно не знаю.
1. Получаем базовый SesInfo и TokInfo
2. Запрос на авторизацию. В качестве кук - SesInfo, в заголовке TokInfo
3. С ответа парсим SessionID
4. Запрашиваем опять SesInfo и TokInfo, в качестве куки SessionID
5. Запрос на выполнение команды. В качестве куки SessionID из п.3, в заголовок TokInfo из п.4
Лично проверил на модеме 8372h. Смену ip сделал циклом Выключаем мобильные данные - Режим только 3G - Режим только LTE - включение мобильных данных. С учетом задержек в коде, смена ip занимает около 10 секунд
Привет. А как Логинился? Пароль шифруется?Добрый день. Можете поделится скриптом?) Я смог залогиниться но вот что дальше делать не могу понять.(
Вот код для ротации. Плюс прилагаю свой шаблон для ротации E5577. Версия ZP 5.47.Привет. А как Логинился? Пароль шифруется?
string UserName = "admin"; //Login = admin
string UserPassword = "YWRtaW4="; // Passord = admin
int pause = int.Parse(project.Variables["Pause"].Value);
string protocol = project.Variables["Protocol"].Value; // http:// или socks5://
string proxy = project.Variables["Proxy"].Value;
string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0";
string host = project.Variables["Host"].Value; // например, 192.168.1.1
// GET Получаем токен
var resultGet = ZennoPoster.HttpGet(
"http://" + host + "/api/webserver/SesTokInfo",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
string.Empty,
userAgent,
true,
5
);
// Парсим Set-Cookie и csrf_token
Match matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)");
Match matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)");
if (!matchCookie.Success || !matchCsrf_token.Success)
return null;
string cookies = matchCookie.Value;
string csrf_token = matchCsrf_token.Value;
// POST Логинюсь
var resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/user/login",
"<request><Username>" + UserName + "</Username><Password>" + UserPassword + "</Password><password_type>3</password_type></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
cookies,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + csrf_token,
}
);
// Парсим - SessionID
matchCookie = Regex.Match(resultPost, @"(?<=Set-Cookie:\ ).*(?=;path=/;HttpOnly;)");
string RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=Tokenone:\ ).*", "0")[0].FirstOrDefault();
string SessionID = matchCookie.Value;
// POST Отключаем передачу данных
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/dialup/mobile-dataswitch",
"<request><dataswitch>0</dataswitch></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
SessionID,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + RequestVerificationTokenone,
}
);
// Парсим - RequestVerificationTokenone
RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault();
System.Threading.Thread.Sleep(pause);
// POST Переключение на 3g
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/net/net-mode",
"<request><NetworkMode>02</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>7FFFFFFFFFFFFFFF</LTEBand></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
SessionID,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + RequestVerificationTokenone,
}
);
// Парсим - RequestVerificationTokenone
RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault();
System.Threading.Thread.Sleep(pause);
// POST Переключение на 4g-3g lte-UMTS
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/net/net-mode",
"<request><NetworkMode>03</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>7FFFFFFFFFFFFFFF</LTEBand></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
30000,
SessionID,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + RequestVerificationTokenone,
}
);
// Парсим - RequestVerificationTokenone
RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault();
System.Threading.Thread.Sleep(pause);
// POST Включаем передачу данных
resultPost = ZennoPoster.HttpPost(
"http://" + host + "/api/dialup/mobile-dataswitch",
"<request><dataswitch>1</dataswitch></request>",
"",
proxy,
"UTF-8",
ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody,
//ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
30000,
SessionID,
userAgent,
true,
5,
AdditionalHeaders: new[] {
"__RequestVerificationToken: " + RequestVerificationTokenone,
}
);
System.Threading.Thread.Sleep(2000);
Поделитесь снипетом полным для 8372 пожалуйста , а то затык какой то ,спасибоПочти сам разобрался, но остался один вопрос по логике:
1. Получаем базовый SesInfo и TokInfo
2. С помощью них делаем запрос на авторизацию по паролю, получаем три токена:
и новый SessionID (уже получается "админский")
- __RequestVerificationTokenone
- __RequestVerificationTokentwo
- __RequestVerificationToken
3. Для следующего запроса используем "админский" SessionID. Но вот какой токен использовать из трех? Или на каждый запрос нужно получать новый токен?
Обновление. Все же добил этот вопрос, логика крайне проста. За час смог ее воспроизвести на C#, с учетом что я его абсолютно не знаю.
1. Получаем базовый SesInfo и TokInfo
2. Запрос на авторизацию. В качестве кук - SesInfo, в заголовке TokInfo
3. С ответа парсим SessionID
4. Запрашиваем опять SesInfo и TokInfo, в качестве куки SessionID
5. Запрос на выполнение команды. В качестве куки SessionID из п.3, в заголовок TokInfo из п.4
Лично проверил на модеме 8372h. Смену ip сделал циклом Выключаем мобильные данные - Режим только 3G - Режим только LTE - включение мобильных данных. С учетом задержек в коде, смена ip занимает около 10 секунд
Логиниться не хочет.Вот код для ротации. Плюс прилагаю свой шаблон для ротации E5577. Версия ZP 5.47.
Пароль шифруется base64.
4G Huawei E5577:string UserName = "admin"; //Login = admin string UserPassword = "YWRtaW4="; // Passord = admin int pause = int.Parse(project.Variables["Pause"].Value); string protocol = project.Variables["Protocol"].Value; // http:// или socks5:// string proxy = project.Variables["Proxy"].Value; string userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"; string host = project.Variables["Host"].Value; // например, 192.168.1.1 // GET Получаем токен var resultGet = ZennoPoster.HttpGet( "http://" + host + "/api/webserver/SesTokInfo", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, string.Empty, userAgent, true, 5 ); // Парсим Set-Cookie и csrf_token Match matchCookie = Regex.Match(resultGet, "(?<=<SesInfo>).*(?=</SesInfo>)"); Match matchCsrf_token = Regex.Match(resultGet, "(?<=<TokInfo>).*(?=</TokInfo>)"); if (!matchCookie.Success || !matchCsrf_token.Success) return null; string cookies = matchCookie.Value; string csrf_token = matchCsrf_token.Value; // POST Логинюсь var resultPost = ZennoPoster.HttpPost( "http://" + host + "/api/user/login", "<request><Username>" + UserName + "</Username><Password>" + UserPassword + "</Password><password_type>3</password_type></request>", "", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, cookies, userAgent, true, 5, AdditionalHeaders: new[] { "__RequestVerificationToken: " + csrf_token, } ); // Парсим - SessionID matchCookie = Regex.Match(resultPost, @"(?<=Set-Cookie:\ ).*(?=;path=/;HttpOnly;)"); string RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=Tokenone:\ ).*", "0")[0].FirstOrDefault(); string SessionID = matchCookie.Value; // POST Отключаем передачу данных resultPost = ZennoPoster.HttpPost( "http://" + host + "/api/dialup/mobile-dataswitch", "<request><dataswitch>0</dataswitch></request>", "", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, SessionID, userAgent, true, 5, AdditionalHeaders: new[] { "__RequestVerificationToken: " + RequestVerificationTokenone, } ); // Парсим - RequestVerificationTokenone RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault(); System.Threading.Thread.Sleep(pause); // POST Переключение на 3g resultPost = ZennoPoster.HttpPost( "http://" + host + "/api/net/net-mode", "<request><NetworkMode>02</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>7FFFFFFFFFFFFFFF</LTEBand></request>", "", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, SessionID, userAgent, true, 5, AdditionalHeaders: new[] { "__RequestVerificationToken: " + RequestVerificationTokenone, } ); // Парсим - RequestVerificationTokenone RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault(); System.Threading.Thread.Sleep(pause); // POST Переключение на 4g-3g lte-UMTS resultPost = ZennoPoster.HttpPost( "http://" + host + "/api/net/net-mode", "<request><NetworkMode>03</NetworkMode><NetworkBand>3FFFFFFF</NetworkBand><LTEBand>7FFFFFFFFFFFFFFF</LTEBand></request>", "", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, 30000, SessionID, userAgent, true, 5, AdditionalHeaders: new[] { "__RequestVerificationToken: " + RequestVerificationTokenone, } ); // Парсим - RequestVerificationTokenone RequestVerificationTokenone = Macros.TextProcessing.Regex(resultPost, @"(?<=__RequestVerificationToken:\ ).*", "0")[0].FirstOrDefault(); System.Threading.Thread.Sleep(pause); // POST Включаем передачу данных resultPost = ZennoPoster.HttpPost( "http://" + host + "/api/dialup/mobile-dataswitch", "<request><dataswitch>1</dataswitch></request>", "", proxy, "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.HeaderAndBody, //ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, SessionID, userAgent, true, 5, AdditionalHeaders: new[] { "__RequestVerificationToken: " + RequestVerificationTokenone, } ); System.Threading.Thread.Sleep(2000);
Этот должен подойти - https://zennolab.com/discussion/threads/upravlenie-3g-modemom.33960/post-601541Поделитесь снипетом полным для 8372 пожалуйста , а то затык какой то ,спасибо
У вас какой логин и пароль на роутере?Логиниться не хочет.
Отвтет Пост запроса.
<?xml version="1.0" encoding="UTF-8"?>
<error>
<code>108006</code>
<message></message>
</error>
Вот пароль в BASE64 (11111111) MTExMTExMTE=admin
11111111 в формате b64
Вот пароль в BASE64 (11111111) MTExMTExMTE=
Вот пароль в BASE64 (11111111) MTExMTExMTE=
Да у меня пароль такой но это не чего не меняетВот пароль в BASE64 (11111111) MTExMTExMTE=
Измени логин на; admin и пароль adminДа у меня пароль такой но это не чего не меняет
Спасибо!!! Все заработало. Дело в логине! Благодарю!!!Измени логин на; admin и пароль admin
Подскажи, плз, а где нужно поменять пароль? В коде или на самом роутере поставить admin/admin? В коде меняю - ничего не происходит, а на модеме (E8372) такой простой пароль не дает поставить.Спасибо!!! Все заработало. Дело в логине! Благодарю!!!
В модеме по умолчанию стоит admin admin. Я менял в модеме.Подскажи, плз, а где нужно поменять пароль? В коде или на самом роутере поставить admin/admin? В коде меняю - ничего не происходит, а на модеме (E8372) такой простой пароль не дает поставить.
Понял, спасибо! Буду думать, как сделать admin/admin, чтобы модем при этом не просил постоянно сменить пароль на более сложный.В модеме по умолчанию стоит admin admin. Я менял в модеме.
Напиши свой пароль от модема.Понял, спасибо! Буду думать, как сделать admin/admin, чтобы модем при этом не просил постоянно сменить пароль на более сложный.
У меня меняется со всеми сим картами!Добрый всем! Господа, подскажите кто использует мегафоновскую сим, как меняете ip. Использую Билайн просто перезагружая модем Huawei E3372h-153 HiLink скриптом от lybimiy86 (огромное спасибо) А вот вставляю симку Мегафон и простой перезагрузкой не меняется, правда заметил что если долго не подключаю, то смена все же происходит.
4G сеть ?У меня меняется со всеми сим картами!