C / C ++ UPNP NAT Traversal Реализация Winsock - PullRequest
0 голосов
/ 22 января 2019

В настоящее время я работаю с P2P Network через Интернет, используя C / C ++ и Winsock2.После этого я хочу сделать переадресацию портов с маршрутизатором, используя UPNP (я знаю, что на некоторых маршрутизаторах нет UPNP, мне просто нужно сделать это с этой технологией).

Я хочу сделать простой класс, а именно: "NATUPNP ", чтобы сделать все NAT Traversal, используя UPNP.Я уже создал этот класс, но он вызвал много ошибок, так как я не очень увлекаюсь сетевым программированием, извините (только простые знания).Если кто-то знает, как это сделать, я буду очень признателен за ваши усилия.Ниже мой класс с функциями / методами, которые я хотел бы быть там и работать.Заранее спасибо.

#include <Winsock2.h>
#include <Ws2tcpip.h>

class NATUPNP
{
    public:
    string getPublicIP(); //return the Public IP Address of the Network

    bool isUPNPEnabled(); //return true if router can do UPNP NAT Traversal, if not return false

    bool isPortForwarded(int port); //return true if port is forwarded by the router, if not return false

    bool addPortForward(int externalPort, int internalPort, string ipAddress); //ask router to forward this port to this local ipAddress

    bool removePortForward(int externalPort, int internalPort, string ipAddress); //ask router to remove port forward to this local ipAddress
};
...