C++ 从URL(C+;+;)获取IP
如何从具有顶级域名的域名中获取IP地址? 在本例中,获取google.com的IP。 如果可能,在IPv6中使用正确的格式 这就是我迄今为止所尝试的: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
#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)
{
cerrh_别名
是指向char
的指针(即指向多个C字符串)。您需要在中进一步访问一个维度才能查看字符串。gethostbyname()
不推荐使用,请使用getaddrinfo()
相反。并准备好处理主机报告的IP地址超过1个的情况。-注意:gethostbyname
已被弃用,请勿使用。请注意,您得到的是DNS服务器所说的,即您的ISP。有时这不是真正的IP。此外,主机文件会影响这些功能。