C++ 使用POCO查找公共IP

C++ 使用POCO查找公共IP,c++,network-programming,ip-address,poco-libraries,C++,Network Programming,Ip Address,Poco Libraries,如何使用POCO查找我的公共IP 受第6页的启发,我尝试了以下方法: #include "Poco/Net/DNS.h" #include <iostream> using Poco::Net::DNS; using Poco::Net::HostEntry; int main(int argc, char** argv) { const HostEntry& entry = DNS::thisHost(); std::cout << "Canon

如何使用POCO查找我的公共IP

受第6页的启发,我尝试了以下方法:

#include "Poco/Net/DNS.h"
#include <iostream>
using Poco::Net::DNS;
using Poco::Net::HostEntry;
int main(int argc, char** argv)
{
    const HostEntry& entry = DNS::thisHost();
    std::cout << "Canonical Name: " << entry.name() << std::endl;

    const HostEntry::AliasList& aliases = entry.aliases();
    HostEntry::AliasList::const_iterator alias_it = aliases.begin();
    for (; alias_it != aliases.end(); ++alias_it)
        std::cout << "Alias: " << *alias_it << std::endl;

    const HostEntry::AddressList& addrs = entry.addresses();
    HostEntry::AddressList::const_iterator addr_it = addrs.begin();
    for (; addr_it != addrs.end(); ++addr_it)
        std::cout << "Address: " << addr_it->toString() << std::endl;

    return 0;
}
#包括“Poco/Net/DNS.h”
#包括
使用Poco::Net::DNS;
使用Poco::Net::HostEntry;
int main(int argc,字符**argv)
{
const HostEntry&entry=DNS::thishhost();

std::cout当运行使用POCO的软件的主机位于使用NAT的本地网络内时,不可能直接获得路由器的WAN地址(我猜您在使用术语“我的公共IP”时是指这个)

相反,您必须使用公共服务器的API返回您的IP地址,例如: