使用经典的 nsswitch.conf 配置:
hosts: files dns
如果 DNS 未应答(或配置不当),尝试使用 gethostbyname(或 getaddrinfo)解析名称可能需要一段时间。
有没有办法在 nsswitch.conf 中配置超时或使用管理超时的替代 api?
有getaddrinfo_a,但它是特定于Linux的GNU glibc。或者,您可以生成一个线程并在其中调用 getaddrinfo。不要在线程中使用 gethostbyname,因为它不是线程安全的。