Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Кратковременное отключение интернета.

Страниц (1): [1]
 

1. konctantin777 - 26 Ноября, 2020 - 06:52:51 - перейти к сообщению
Здравствуйте
Нужно эмулировать для одного сайта отключение от интернета на одно мгновение, тольк чтобы данные на странице обновились. Думаю записать в файл hosts название сайта и тут же стереть. Как настройки для кибора записывать знаю, а как проверить, что если эта строчка есть (ya.ru), то не записывать и когда стирать, то только её ? Может по другому как то можно эмулировать на мгновение потерю интернета....
2. ivantu - 26 Ноября, 2020 - 07:11:21 - перейти к сообщению
Через командную строку можно:

CODE:

#define TH32CS_SNAPPROCESS 2
#define PROCESS_ALL_ACCESS 2097151
#define STARTF_USESHOWWINDOW 1
external(INT, "CreateProcess", "CreateProcessA", "Kernel32.dll");
external(INT, "CreateToolhelp32Snapshot", "CreateToolhelp32Snapshot", "Kernel32.dll");
external(INT, "Process32First", "Process32First", "Kernel32.dll");
external(INT, "Process32Next", "Process32Next", "Kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "Kernel32.dll");


system_("/c "+"netsh interface set interface name=^"Ethernet^" admin=DISABLED"); // ENABLED



function system_(string CommandLine){
int STARTUPINFOA[17], PROCESS_INFORMATION[4];
initialarray(#STARTUPINFOA[0], 0);
STARTUPINFOA[0]=68;
STARTUPINFOA[11]=STARTF_USESHOWWINDOW; // не показывать окно
if(CreateProcess(0, "cmd.exe "+CommandLine, 0, 0, 0, 0, 0, 0, address(#STARTUPINFOA[0]), address(#PROCESS_INFORMATION[0])))
{
while(findprocess(PROCESS_INFORMATION[2]))sleep(10); // ждать пока процесс существует
CloseHandle(PROCESS_INFORMATION[0]);
}
}

function findprocess(int PID)
{
char PROCESSENTRY32[296];
int exists=0, hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(hSnapshot)
{
writeaddress(sizearray(PROCESSENTRY32), address(#PROCESSENTRY32[0]));
Process32First(hSnapshot, address(#PROCESSENTRY32[0]));
while(Process32Next(hSnapshot, address(#PROCESSENTRY32[0])))
{
if(codhexi(#PROCESSENTRY32[8], 4) == PID){exists++; break;}
}
CloseHandle(hSnapshot);
if(exists)return 1;
}
return 0;
}



name=^"Ethernet^" - указать имя своего подключения

3. konctantin777 - 26 Ноября, 2020 - 11:19:33 - перейти к сообщению
Ок, спасибо. Буду пробовать будет ли обратно через 5мсек включаться )
4. konctantin777 - 27 Ноября, 2020 - 03:44:43 - перейти к сообщению
 ivantu пишет:
Через командную строку можно:
Долго получается. Надо именно, чтобы на мгновение отключился и снова включился...

А через hosts- mytech.cnord.net записывает, а 127.0.0.1 mytech.cnord.net не записывает.

Можно как то ещё сделать, чтобы на мгновение сайт отключать и так каждые 100мсек. ?
5. ivantu - 27 Ноября, 2020 - 03:59:32 - перейти к сообщению
Пример кода можно?
И для чего такое извращение?
Может есть другой путь?
6. konctantin777 - 27 Ноября, 2020 - 04:06:09 - перейти к сообщению
CODE:
//открываем файл для записи "w". Если файл существует он будет перезаписан.
//Для добавления в конец надо открывать с "a"
if (fopen ("C:\Windows\System32\drivers\etc\hosts", "w")!=0)
{//если открылся
fwrite(mytech.cnord.net);//записываем в файл


fclose();//закрываем файл
}


Записывает норм

А если добавляем впереди 127.0.0.1, чтобы блокировал сайт, то уже нет..
(Добавление)
 ivantu пишет:
И для чего такое извращение?
Может есть другой путь?


Чтобы обновились данные на веб странице без её перезагрузки.
Не специалист в вебсокетах....
7. ivantu - 27 Ноября, 2020 - 04:12:43 - перейти к сообщению
Нет кавычек

CODE:

//открываем файл для записи "w". Если файл существует он будет перезаписан.
//Для добавления в конец надо открывать с "a"
if (fopen ("C:\Windows\System32\drivers\etc\hosts", "w")!=0)
{//если открылся
fwrite("127.0.0.1 mytech.cnord.net");//записываем в файл


fclose();//закрываем файл
}
8. konctantin777 - 27 Ноября, 2020 - 04:17:10 - перейти к сообщению
Да блин... Спасибо !!

Powered by ExBB FM 1.0 Final