C++ 使用gethostbyname()提取IP数据

C++ 使用gethostbyname()提取IP数据,c++,networking,dns,C++,Networking,Dns,现在,例如,如果我想找到某个主机的IP。我将使用gethostbyname()命令并将数据放在结构hostent中。现在我想得到信息h_addr_列表。我所做的就是开始打印地址,直到得到一个空字符。现在我面临的问题是地址是*字符格式的,我想把它们改成IPv4格式。我试过某些方法,但总是遇到问题 struct hostent { char *h_name; /* Official domain name of host */ char **h_aliases; /

现在,例如,如果我想找到某个主机的IP。我将使用gethostbyname()命令并将数据放在结构hostent中。现在我想得到信息h_addr_列表。我所做的就是开始打印地址,直到得到一个空字符。现在我面临的问题是地址是*字符格式的,我想把它们改成IPv4格式。我试过某些方法,但总是遇到问题

struct hostent 
{
    char *h_name;       /* Official domain name of host */
    char **h_aliases;   /* Null-terminated array of domain names */
    int h_addrtype;     /* Host address type (AF_INET) */
    int h_length;       /* Length of an address, in bytes */
    char **h_addr_list;     /* Null-terminated array of in_addr structs */
};

下面是代码示例。输出地址的格式为digits.digits.digits.digits(包含虚线)


您是否希望执行以下操作:

地址是char*

struct in_addr IpAddress;
if(inet_aton(Address,&IpAddress))
{
    return(ntohl((int)IpAddress.s_addr));
}

.

您是想说您不知道如何将IPv4虚线四元字符串转换为其他未指定的格式吗?您的代码示例在哪里?您所说的“IPv4格式”是什么意思?您的意思是希望它们作为虚线四元字符串,如“127.0.0.1”^虚线四元字符串,如127.0.0.1是的。
name: localhost
address: 127.0.0.1
struct in_addr IpAddress;
if(inet_aton(Address,&IpAddress))
{
    return(ntohl((int)IpAddress.s_addr));
}