有没有一种方法可以设置 DNS 请求可以绑定到的网络接口。
我们有一个项目需要使用高优先级流会话通过一个接口,所有其他请求通过第二个接口。
示例:设置“eth0”,以便所有 ares 请求都通过“eth0”而不是“wlan0”。
我无法在 c-ares(在 ares_init_options() API)中找到任何提供此设置界面选项的 API。
如果有什么方法可以实现这一点,或者我错过了什么,请告诉我。
谢谢,阿琼
有没有一种方法可以设置 DNS 请求可以绑定到的网络接口。
我们有一个项目需要使用高优先级流会话通过一个接口,所有其他请求通过第二个接口。
示例:设置“eth0”,以便所有 ares 请求都通过“eth0”而不是“wlan0”。
我无法在 c-ares(在 ares_init_options() API)中找到任何提供此设置界面选项的 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);