Попытка настроить прокси через программу на С ++.Не работает - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь настроить прокси через программу на С ++, но это не работает.Сама программа работает нормально, но на самом деле она ничего не устанавливает.

Это код:

#include <iostream>
#include <windows.h>
#include <string>
using namespace std;

void newproxy();

int main (){

    int ch = 0;

    cout << "Select the option:\n\n\t(1)Set a NEW proxy\n\t(2)View the current proxy settings\n\t(3)Clear ALL proxy settings\n\t(4)Exit\n\n\t";
    cin >> ch;
    cin.ignore();
    switch (ch){

        case 1 :
            system("cls");
            newproxy();
            break;

        case 2 :
            system("cls");
            system("netsh winhttp show proxy");
            system("pause");
            system("cls");
            main();
            break;

        case 3 :
            system("cls");
            system("netsh winhttp reset proxy");
            system("cls");
            cout << "ALL proxy settings cleared\n\n";
            main();
            break;

        case 4 :
            return 0;
            break;

    }
}

void newproxy(){

    string ip;
    string port;
    int ch = 0;

    cout << "Insert ip: ";
    getline (cin, ip);
    cout << "Inster port: ";
    getline(cin, port);
    cout << "\nAre those the correct ip and port? " << ip << ":" << port << "\n\n\t(1)Yes (2)No (3)Abort\n\n\t";
    cin >> ch;
    cin.ignore();
    switch (ch){

        case 1 :
            break;

        case 2 :
            system("cls");
            newproxy();
            break;

        case 3 : 
            system("cls");
            main();
            break;

    }
    system(("netsh winhttp set proxy proxy-server="+ip+":"+port).c_str());
    system("cls");
    cout << "Proxy succesfully setted\n\n";
    main();
}

Когда я устанавливаю новый прокси, программа фактически видит его и отображает дажеесли я перезапущу программу, но на самом деле ничего не будет сделано.Если я открою браузер и выполню поиск «мой IP-адрес», он отобразит тот же общедоступный IP-адрес, что и при настройке в настройках Windows.

Может ли кто-нибудь мне помочь?Проблема в коде или что-то еще?

Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018
 system((std::string("netsh winhttp set proxy ") + ip +":" + port).c_str());

У вас почти все было.

Чтобы использовать инструмент Netsh.exe для настройки прокси-сервера, выполните следующие действия:

Нажмите Пуск, нажмите Выполнить, введите cmd изатем нажмите OK.

В командной строке введите netsh winhttp set proxy proxyservername:portnumber и нажмите клавишу ВВОД.

Удачи.

...