1

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

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

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

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

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

谢谢,阿琼

4

1 回答 1

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);
于 2011-10-03T16:59:30.667 回答