2016-09-14 8 views
2

POCOを使用してパブリックIPを検索するにはどうすればよいですか?POCOでパブリックIPを検索

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

これは、しかし、2つのアドレスを返さ:their Network presentationの6ページに触発さ

、私は次のことを試してみました1つのIPv6リンクローカル(FE80:...)と1つのプライベートLANのIPv4(10.0 ...)。それは私の公的知財を返さなかった。

これはできますか?

答えて

1

POCOを使用してソフトウェアを実行しているホストがNATを使用するローカルネットワーク内にある場合、ルータのWANアドレスを直接取得することはできません(私のパブリックIP ")。

代わりに、IPアドレスを返す公開サーバーのAPIを使用する必要があります。https://www.ipify.org/

関連する問題