Это продолжение моего предыдущего вопроса: Установите HTTP (S) Proxy Proxy Proxy < /p>
У меня есть программа, которая устанавливает прокси -сервер для HTTP -запросов, когда он начинается. Когда программа завершает свою работу, мне нужно отключить прокси -прокси HTTP -запросы. Когда программа завершена, закрыв ее, вы можете установить обработчик, например, через STD :: atexit и остановить прокси в обратном вызове. В этом случае обработчик std :: atexit больше не будет называться. Мне нужно это, чтобы остановить прокси HTTP -трафик. Любые другие решения также приветствуются. < /P>
Решение как для консольной программы, так и для программы с графическим интерфейсом.BOOL SetConnectionOptions()
{
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill the list structure.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;
// Set three options.
list.dwOptionCount = 3;
list.pOptions = new INTERNET_PER_CONN_OPTION[3];
// Ensure that the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY;
// Set proxy name.
list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
list.pOptions[1].Value.pszValue = (LPWSTR)TEXT("http=127.0.0.1:8888;https=127.0.0.1:8888");
// Set proxy override.
list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
list.pOptions[2].Value.pszValue = (LPWSTR)TEXT("local");
// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);
// Free the allocated memory.
delete[] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH, NULL, 0);
return bReturn;
}
< /code>
и используя следующий код, я останавливаю прокси < /p>
BOOL DisableConnectionProxy(/*LPCTSTR conn_name*/)
{
//conn_name: active connection name.
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;
// Set three options.
list.dwOptionCount = 1;
list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount];
// Make sure the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
std::cout
Подробнее здесь: https://stackoverflow.com/questions/795 ... ogram-ends
Отключить HTTP -прокси, когда заканчивается программа ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1746097947
Anonymous
Это продолжение моего предыдущего вопроса: Установите HTTP (S) Proxy Proxy Proxy < /p>
У меня есть программа, которая устанавливает прокси -сервер для HTTP -запросов, когда он начинается. Когда программа завершает свою работу, мне нужно отключить прокси -прокси HTTP -запросы. Когда программа завершена, закрыв ее, вы можете установить обработчик, например, через STD :: atexit и остановить прокси в обратном вызове. В этом случае обработчик std :: atexit больше не будет называться. Мне нужно это, чтобы остановить прокси HTTP -трафик. Любые другие решения также приветствуются. < /P>
Решение как для консольной программы, так и для программы с графическим интерфейсом.BOOL SetConnectionOptions()
{
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill the list structure.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;
// Set three options.
list.dwOptionCount = 3;
list.pOptions = new INTERNET_PER_CONN_OPTION[3];
// Ensure that the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
return FALSE;
}
// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY;
// Set proxy name.
list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
list.pOptions[1].Value.pszValue = (LPWSTR)TEXT("http=127.0.0.1:8888;https=127.0.0.1:8888");
// Set proxy override.
list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
list.pOptions[2].Value.pszValue = (LPWSTR)TEXT("local");
// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);
// Free the allocated memory.
delete[] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH, NULL, 0);
return bReturn;
}
< /code>
и используя следующий код, я останавливаю прокси < /p>
BOOL DisableConnectionProxy(/*LPCTSTR conn_name*/)
{
//conn_name: active connection name.
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;
// Set three options.
list.dwOptionCount = 1;
list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount];
// Make sure the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79593085/disable-http-proxying-when-program-ends[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия