C / C ++ UPNP NAT穿越Winsock实现

时间:2019-01-22 08:05:30

标签: c++ networking winsock2 upnp nat-traversal

我目前正在使用C / C ++和Winsock2通过Internet使用P2P网络。这样,我想使用UPNP与路由器进行端口转发(我知道有些路由器没有UPNP,我只需要使用这项技术即可。)

我想创建一个简单的类“ NATUPNP”来使用UPNP进行所有NAT遍历。我已经做过此类,但是由于我不是很喜欢网络编程(仅提供简单知识),因此它引起了很多错误。如果有人知道该怎么做,我将非常感谢您的努力。下面是我的类,其中包含我想在那里工作的功能/方法。预先感谢。

#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
};

0 个答案:

没有答案