C++ 从URL(C+;+;)获取IP

C++ 从URL(C+;+;)获取IP,c++,sockets,connect,gethostbyname,C++,Sockets,Connect,Gethostbyname,如何从具有顶级域名的域名中获取IP地址? 在本例中,获取google.com的IP。 如果可能,在IPv6中使用正确的格式 这就是我迄今为止所尝试的: #include <netdb.h> using namespace std; int main() { struct hostent* myHostent; myHostent = gethostbyname("google.com"); cout<<myHostent <<"\n

如何从具有顶级域名的域名中获取IP地址? 在本例中,获取google.com的IP。 如果可能,在IPv6中使用正确的格式

这就是我迄今为止所尝试的:

#include <netdb.h>

using namespace std;

int main()
{
    struct hostent* myHostent;
    myHostent = gethostbyname("google.com");
    cout<<myHostent <<"\n";
    //output is a hex code
    cout<<myHostent->h_name<<"\n";
    //output is google.com
    cout<<myHostent->h_aliases;
    //output is a hex code  
}

#包括
使用名称空间std;
int main()
{
struct hostent*myHostent;
myHostent=gethostbyname(“google.com”);
cout域的IP地址(是复数,可以有1个以上)在
hostent::h_addr_list
字段中,而不是在
hostent::h_alias
字段中,例如:

intmain()
{
hostent*myHostent=gethostbyname(“google.com”);
如果(!myHostent)
{
cerr ai_地址)->sin_地址);
案例6:
返回和(重新解释cast(地址->ai地址)->sin6地址);
}
返回NULL;
}
int main()
{
addrinfo提示={};
hits.ai_flags=ai_CANONNAME;
hits.ai_family=AF_unsec;
hits.ai_socktype=SOCK_流;
hits.ai_protocol=IPPROTO_TCP;
addrinfo*res;
int-ret=getaddrinfo(“google.com”,NULL,&hints,&res);
如果(ret!=0)
{

cerr
h_别名
是指向
char
的指针(即指向多个C字符串)。您需要在中进一步访问一个维度才能查看字符串。
gethostbyname()
不推荐使用,请使用
getaddrinfo()
相反。并准备好处理主机报告的IP地址超过1个的情况。-注意:
gethostbyname
已被弃用,请勿使用。请注意,您得到的是DNS服务器所说的,即您的ISP。有时这不是真正的IP。此外,主机文件会影响这些功能。