`

通过域名获取ip的代码inet_ntop

阅读更多
通过如“www.163.com”获取ip地址。

#include "global.h"

/*
 * @brief 通过主机名host如"www.163.com"获得ip地址
 * @param[in]  host  主机名
 * @param[out] ip    缓冲区,兼容ipv4和v6
 * @return 成功返回0,失败返回负值。
 */
int getipbyhost(char *host, unsigned char ip[INET6_ADDRSTRLEN])
{
	struct hostent *h;
	char *ptr, **pptr;
	int i;
	if (host == NULL || ip == NULL)
		return -1;
	h = gethostbyname(host);
	if (h == NULL)
		return -2;
	
	switch(h->h_addrtype)
	{
	case AF_INET:
	case AF_INET6:
		//#define h_addr h_addr_list[0] 在netdb.h中
		ptr = inet_ntop(h->h_addrtype, h->h_addr, ip, INET6_ADDRSTRLEN);
		printf("ip = %s \n", ip);	
	}

	printf("Official Hostname: %s \n", h->h_name);   //官方名字
	for (pptr = h->h_aliases; *pptr != NULL; pptr++) //别名
		printf("Alias: %s\n", *pptr);

	printf("INET6_ADDRSTRLEN: %d,  INET_ADDRSTRLEN: %d \n", 
			INET6_ADDRSTRLEN,    INET_ADDRSTRLEN);

	if (i == 32)
		printf("Warnning:Too Much ip for the host."
				" Only fetch 32 ahead this time!\n");

	return 0;
}

int main(int argc, char **argv)
{
	int ret;
	unsigned char ip[INET6_ADDRSTRLEN];
	
	if (argc != 2)
		printf("Usage: command <arg1>\n");

	getipbyhost(argv[1], ip);
	return 0;
}
分享到:
评论

相关推荐

    Linux 网络域名解析

    在Linux下,将域名解析为IP地址 ================代码片段======================== for(; *pptr!=NULL; pptr++) printf(" address:%s\n", inet_ntop(pHostEntry-&gt;h_addrtype, *pptr, sIp, 18)); printf(" first ...

    c++ 域名转ip

    inet_ntop(host-&gt;h_addrtype, *addr_list, ip_str, INET_ADDRSTRLEN); // 输出IP_str } ``` 2. **使用getaddrinfo()函数** 更现代化的方法是使用`getaddrinfo()`函数,它符合POSIX标准,可以处理IPv4和IPv6。`...

    VC++获取本地IP地址

    2. **获取本地IP地址**:使用`gethostname`函数获取本地计算机名,然后通过`gethostbyname`或`getaddrinfo`函数查询对应的IP地址。`gethostbyname`适用于IPv4,`getaddrinfo`则支持IPv4和IPv6。 ```cpp char ...

    vc6代码把域名解析为IP

    在给定的"vc6代码把域名解析为IP"的主题中,我们将探讨如何使用VC6进行域名解析,并通过源代码实现这一功能。 域名解析通常依赖于DNS(Domain Name System),这是一个分布式数据库系统,负责存储域名与IP地址之间...

    c++ 通过域名查 IP 服务器地址

    在IT行业中,网络通信是不可或缺的一部分,而通过域名查找IP地址是网络通信中的基础操作。本文将详细探讨如何使用C++编程语言实现这个功能,主要涉及的知识点包括域名解析、DNS(Domain Name System)系统以及HTTP...

    ch1_GetIP_visualc++_

    除了通过`GetAdaptersInfo`或`GetAdaptersAddresses`获取所有IP地址外,还可以使用`gethostbyname`或`getaddrinfo`获取特定主机名对应的IP地址。在本地计算机上,可以使用`GetHostByName`函数获取默认接口的IP地址:...

    获取计算机的网络信息

    这个例子通过`getifaddrs`获取所有活动的网络接口,并打印出它们的IP地址。 总的来说,获取计算机的网络信息需要对操作系统底层的网络接口有深入理解,以及熟悉如Winsock、socket编程或`getifaddrs`等API的使用。在...

    c/c++实现获取域名的IP地址

    在C/C++中获取域名IP地址的步骤如下: 1. 初始化Windows Socket API: 使用`WSAStartup`函数启动Winsock服务。这个函数接受一个版本号(在这个例子中是MAKWORD(2,2),代表使用Winsock 2.2版本)和一个`WSADATA`...

    ph资源打ip

    4. **IP地理位置定位**:可以结合第三方服务或API,如GeoIP,通过IP地址获取地理位置信息。PHP可以发送HTTP请求获取JSON或XML数据,然后使用`json_decode()`或`simplexml_load_string()`解析返回的数据。 5. **IP黑...

    获取IP地址

    在IT领域,获取IP地址是一项基础且重要的任务,特别是在网络通信和系统编程中。本文将深入探讨如何在Visual C++2013环境下获取网络终端地址...通过以上步骤,无论是获取本地还是远程IP地址,都能实现高效且准确的获取。

    如何获取某台机器的IP地址(1kb)

    要获取远程机器的IP地址,通常需要知道其域名或已知的IP地址,然后通过DNS解析得到IP。`gethostbyname()`或`getaddrinfo()`都可以用于此目的。如果目标机器有多个IP地址,这些函数会返回一个地址列表。 总之,获取...

    winsocket编程获得本机IP地址和计算机名称

    综上所述,通过Winsock编程,我们可以编写一个简单的GUI程序,它能够获取并显示本机的IP地址和计算机名称。这个过程涉及到Winsock的初始化、网络信息查询、地址解析,以及最后的资源清理。这些步骤都是构建任何涉及...

    Visual.C.程序开发范例宝典 通过家算计名获取IP

    两者之间通过DNS(Domain Name System)服务进行映射,将域名转换为IP地址,反之亦然。 在Visual C++中,我们可以使用Windows API来获取计算机名和对应的IP地址。Windows API提供了大量的函数,允许开发者访问操作...

    gethostbyname可执行代码

    这段Python代码通过`socket.getaddrinfo`获取所有地址信息,然后通过`socket.gethostbyname`将域名转换为IP地址。 至于提供的压缩包文件"Gethostbyname",可能包含了一个示例程序或者库,用于演示如何使用`...

    MFC实现获取当前计算机的主机名和IP地址

    总结来说,通过MFC结合Winsock库,我们可以方便地获取并显示当前计算机的主机名和IP地址,这对于网络诊断、日志记录或者网络通信的应用非常有用。在实际编程过程中,还需要对可能出现的错误进行适当的处理,并且确保...

    用VC++获取主机名和IP地址

    总结来说,通过VC++获取主机名主要依赖于`GetComputerName`函数,而获取IP地址则需要用到`getaddrinfo`函数。这两个函数结合使用,可以在VC++中实现对本地主机信息的完整获取。在实际编程中,根据需求可能还需要处理...

    通过ip查询地址,c++程序

    inet_ntop(ptr-&gt;ai_family, addr, ip_string, INET6_ADDRSTRLEN); // ip_string now contains the IP address in string format } freeaddrinfo(res); // Don't forget to free the memory } ``` 从描述中提到...

    IP地址与主机名相互转换解析

    这个函数会查询DNS(域名系统)服务器,以获取主机名的IP地址信息。 2. `gethostbyaddr`:相反,当已知一个IP地址,但想要找出它对应的主机名时,就用到`gethostbyaddr`。它通过DNS反向查询,将IP地址转换成主机名...

    vc6.0编写的将DNS转化为IP

    在这个示例中,`inet_ntop()`函数用于将二进制IP地址转换为字符串形式,便于打印或显示给用户。 项目中的"DnsIp"文件可能是源代码文件,包含了上述功能的实现。通过阅读和理解这段代码,你可以学习到如何在C++环境...

    PHP实例开发源码-IP域名归属地查询接口PHP开源版.zip

    这个接口允许开发者通过编程方式获取特定IP地址或域名的地理位置信息,对于网络监控、安全分析、用户行为追踪等场景非常有用。下面将详细介绍相关的PHP知识和技术点。 1. PHP基础: PHP(Hypertext Preprocessor)...

Global site tag (gtag.js) - Google Analytics