繁体   English   中英

linux函数inet_ntoa将导致dns查询吗?

[英]will linux function inet_ntoa result in a dns query?

Linux函数inet_ntoa会在Linux中导致DNS查询吗? 任何人都可以举例说明吗? 我想限制进行的dns查询,在这种情况下,使用inet_ntoa会导致dns查询吗?

不, inet_ntoa只是将“原始二进制”地址(按网络顺序)中的地址转换为其点分十进制表示形式。

getaddrinfo用于DNS查询。 它获取的地址采用这种原始二进制格式。 然后,可以使用inet_ntoa使地址(更多)易于阅读。

请注意,即使getaddrinfo也不一定会导致DNS查询。 大多数操作系统保留DNS缓存,并从那里提供地址服务(如果之前已请求)。

不,它只是将给定的“二进制编码” IPv4地址转换为字符串。

BTW与IPv4一起,也变得越来越“旧式”。 除此之外,它不是线程安全的,因为返回其地址的缓冲区将在每次调用时重用。

如果在程序中使用getnameinfo()并提供标志NI_NUMERICHOSTNI_NUMERICSERV ,则该函数也将避免执行DNS查询,但是它将显示它知道的所有类型的地址(主要是IPv4和IPv6)。

inet_ntoa独立于DNS; 它将32位IPV4地址转换为点分四进制表示法。 inet_addr执行反向转换。 都不涉及DNS名称来寻址或地址涉及名称查找。

如今,两者都被弃用为“仅IPV4”,而支持可以处理IPV4和IPV6转换的inet_ntop函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM