2012-04-10 42 views
2

我需要一个简单的函数,输出char* hostname,给定char* IPAddress。任何想法或提示?如何从C中的IPv4地址获取主机名?

另外,从主机名获取IP地址的最简单方法是gethostbyname()inet_ntoa()是否正确?

+0

请注意,'inet_ntoa()'只能在内存中从'sockaddr'结构转换为数字符号形式的字符串。不支持域名。 – 2016-11-04 17:31:25

回答

4

所有你需要的信息都在优秀的Beej's Guide to Network Programming。与您的问题相关的页面是here

如果在阅读完本文后,您仍然遇到问题,请在这里发布有关特定问题的问题。

+0

我会看看它。谢谢。 – user884685 2012-04-10 03:56:19

3

使用gethostbyaddr()getnameinfo()将IP转换为主机名。

使用gethostbyname()getaddrinfo()将主机名转换为IP。

gethostby...()只支持IPv4。 get...info()支持多种协议,包括IPv4和IPv6,并且是新开发的首选功能。

2
  1. 要从地址获取主机名称,您通常使用(这里很大的惊喜)gethostbyaddr()

  2. 是的,可能。