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

时间:2011-09-30 14:03:37

标签: c++ c network-programming dns c-ares

是否有一种方法可以设置DNS请求可以绑定到的网络接口。

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

示例:设置'eth0'以便所有bes请求将通过'eth0'而不是'wlan0'。

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

如果有办法解决这个问题,或者我错过了什么,请告诉我。

谢谢, 阿琼

1 个答案:

答案 0 :(得分:1)

如果你有一个相当新的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);