gpt4 book ai didi

c - 将 getaddrinfo 绑定(bind)到特定接口(interface)(源 IP)

转载 作者:太空狗 更新时间:2023-10-29 12:41:45 24 4
gpt4 key购买 nike

我使用 getaddrinfo() 获取与使用 URL 的服务器对应的 IP 地址。它本质上是向 DNS 服务器发送 DNS 查询。我希望能够从特定的出站接口(interface)发送该查询。基本上我有多个接口(interface),通过这些接口(interface)可以发送 DNS 查询。目前,getaddrinfo() 没有办法指定应该使用哪个接口(interface)来发送 DNS 查询。是更改 getaddrinfo() 例程的唯一选择吗?有谁知道实现此目标的任何其他方法?

最佳答案

这个问题的根本问题是您似乎期望 getaddrinfo 仅使用 DNS,然后能够微调该 DNS 查找的细节。然而,这不是它所做的——它将使用系统上的所有名称解析工具,这通常意味着它将执行 hosts 文件查找,以及 nsswitch 中配置的任何其他内容。 conf,一般是DNS。对于其中一些非 DNS 查找,源地址绑定(bind)可能没有任何意义,因此它不是最小公分母接口(interface)的一部分。

如果您知道为了您的特定目的,您永远不需要从 DNS 以外的任何地方查找名称的响应,那么您可以使用特定于 DNS 的函数来代替,该函数将使您能够做这样的事情-调整。

gethostbyname dual network interfaces, select which one to use 中列出了几个 DNS C 库示例

关于c - 将 getaddrinfo 绑定(bind)到特定接口(interface)(源 IP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40311013/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com