[英]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_NUMERICHOST
和NI_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.