c-ares 指定 DNS 解析的网络接口

2023-12-10

有没有办法可以设置 DNS 请求绑定到的网络接口。

我们有一个项目,需要使用高优先级流会话通过一个接口,而所有其他请求通过第二个接口传递。

示例:设置“eth0”,以便所有 ares 请求将通过“eth0”而不是“wlan0”。

我无法在 c-ares 中找到任何提供此设置界面选项的 API(在 ares_init_options() API 中)。

如果有什么方法可以实现这一点或者我错过了什么,请告诉我。

谢谢, 阿琼


如果您有一个相当新的 c-ares (c-ares >= 1.7.4),请查看 ares.h (这是我实际发现它引用的唯一地方)。

/* These next 3 configure local binding for the out-going socket
 * connection.  Use these to specify source IP and/or network device
 * on multi-homed systems.
 */
CARES_EXTERN void ares_set_local_ip4(ares_channel channel, unsigned int local_ip);

/* local_ip6 should be 16 bytes in length */
CARES_EXTERN void ares_set_local_ip6(ares_channel channel,
                                     const unsigned char* local_ip6);

/* local_dev_name should be null terminated. */
CARES_EXTERN void ares_set_local_dev(ares_channel channel,
                                     const char* local_dev_name);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c-ares 指定 DNS 解析的网络接口 的相关文章

随机推荐

  • Android:为什么视图没有 maxHeight?

    视图有一个minHeight但不知何故缺乏maxHeight 我想要实现的是让一些项目 视图 填充ScrollView 当有 1 3 个项目时我想直接显示它们 意思是ScrollView具有 1 2 或 3 个项目的高度 当有 4 个或更多
  • UIKeyboardTypeDecimalPad 中的小数点不能用于数学计算

    我使用的键盘类型 UIKeyboardTypeDecimalPad两个人UITextField对象 当尝试执行添加时 根据当前区域设置 我会得到不同的结果 情况 1 美国格式 小数点显示为 正如预期的那样 如果我添加 12 3 文本字段 1
  • Django Rest Api - ManyToManyField,在练习数组中显示“标题”而不是“id”

    Django Rest Api ManyToManyField 在练习数组中显示 标题 而不是 id HTTP 200 OK Allow GET POST PUT DELETE PATCH Content Type application
  • 如何从 python 脚本调用现有的 LibreOffice python 宏

    目前 我使用以下命令调用现有的 LibreOffice 宏 def OnLOtimestamp self try pid Popen lowriter vnd sun star script fs2TimeStamp py fs2 Time
  • 如何在 Django 1.4 中使用 DB 路由器

    我一直在尝试设置 Django 1 4 3 以使用多个数据库 但我一生都无法让它工作 我阅读了有关 SO 的文档和帖子 并执行了以下操作 1 添加第二个数据库配置settings py 如下 DATABASES default ENGINE
  • 定义自定义属性

    我需要实现我自己的属性 例如com android R attr 在官方文档中找不到任何内容 因此我需要有关如何定义这些属性以及如何从我的代码中使用它们的信息 目前最好的文档是源代码 你可以看一下这里 attrs xml 您可以在顶部定义属
  • 我可以用 Objective-C 以外的任何语言编写 iPhone 应用程序吗?

    是否可以用 Objective C 以外的任何语言编写 iPhone 应用程序 基本上 iPhone iOS 编程有 3 个主要选项 Objective C MonoTouch 适用于 iOS 的 C Adobe AIR 可能还有其他一些可
  • DAO 和依赖注入,有建议吗?

    这是我第一次使用 DAO 模式 从我所得到的read到目前为止 实现这种模式将帮助我将调用代码 控制器 与任何持久性实现分开 这正是我想要的 也就是说 我不想被限制使用任何特定的数据库或第三方库 我正在使用 MongoDB 和吗啡 作为示例
  • 无法安装 ASP.NET MVC 3 RC

    Web 平台安装程序给了我一条成功消息 但 MVC 3 不存在于我的系统上 在 VS 或控制面板中 我下载了安装程序 它告诉我 OS Version 6 0 6000 Platform 2 12 10 2010 11 50 9 OS Des
  • 如何使用平面映射java8根据值的键数量对哈希映射进行排序?

    这是后续的如何使用 lambda 获取哈希映射中值的键数 我有一个HashMap我想找到每个值的键数 Map
  • 在 Windows 上设置 Python 终端编码

    我碰巧在 Windows 上的 Python 终端中设置字符编码失败 根据官方指南 这是小菜一碟 coding utf 8 好的 现在测试 print 生产一块mojibake 我做错了什么 P S 如果重要的话 IDE 是 Visual
  • 是否有与 tab20c 类似且颜色数量更多的调色板?

    这是参考关于颜色图 Here s the tab20c colormap 我想要一个类似的颜色图 这样每种颜色都彼此不同 但它应该包含 20 多种颜色 还有其他选择吗 如果您能找到您喜欢的不同颜色图您链接的页面 您可以使用轻松生成自己的分段
  • selenium-server-standalone 和 selenium-server 有什么区别?

    我可以在 Maven Central 存储库中看到两个存储库 请澄清两个罐子之间的区别 这在硒文档 您可能需要也可能不需要 Selenium 服务器 具体取决于您的方式 打算使用Selenium WebDriver 如果您的浏览器和测试都可
  • 如何使用 Wea​​therKit Swift 框架在小部件扩展中获取天气?

    我无法使用小组件扩展中的 WeatherKit 框架获取天气 这是我为本示例创建的一个项目 该小部件显示样本位置的湿度 这是代码 import WidgetKit import SwiftUI import WeatherKit impor
  • 在 BlackBerry JDE 4.5.0 的状态栏添加通知图标

    我正在编写一个 Java 应用程序黑莓JDE 4 5 将在启动时开始侦听某些事件 我想在状态栏显示一个小图标 我知道 BlackBerry API 4 6 0 版本支持 ApplicationIcon ApplicationIndicato
  • 加密(模式和填充)

    我的任务是编写一个涉及加密的小型 Java 控制台应用程序 我对加密不熟悉 所以我必须先阅读一些内容 到目前为止 给出的高级要求是应使用 AES 256 生成一次性密钥来加密文件 之后 应使用接收者的公钥 RSA 2048 来加密该 AES
  • 是否有任何“DOM 更改”事件? [复制]

    这个问题在这里已经有答案了 可能的重复 检测 DOM 中的变化 我需要设置一个事件处理程序 每当在 DOM 上添加 更改 删除某些内容时 该事件处理程序就会触发 这个答案在我的情况下不起作用 第三方开发人员可以修改 DOM 每次 DOM 更
  • 使用文件字段保存节点

    我正在为 Drupal 站点创建批量上传功能 使用 flash 我可以将文件上传到特定的 url 然后由该 url 处理这些文件 我想要做的不仅仅是上传文件 而是创建一个特定类型的节点 并将文件保存到已使用 CCK 设置的文件字段中 由于这
  • 将事件绑定到文本节点

    这是我的 HTML 我需要将点击事件绑定到 someText div someText a href A link a div someText 可以是任何文本字符串 使用 jQuery 将文本节点包裹起来 span 单击该位置 试试看 h
  • c-ares 指定 DNS 解析的网络接口

    有没有办法可以设置 DNS 请求绑定到的网络接口 我们有一个项目 需要使用高优先级流会话通过一个接口 而所有其他请求通过第二个接口传递 示例 设置 eth0 以便所有 ares 请求将通过 eth0 而不是 wlan0 我无法在 c are