2011-09-30 23 views
1

是否有一種方法可以設置DNS請求可以綁定到的網絡接口。指定DNS解析的網絡接口的c-ares

我們有一個項目需要通過一個接口使用高優先級流會話,並通過第二個接口傳送所有其他請求。例如:設置'eth0',以便所有的ares請求將通過'eth0'而不是'wlan0'。

我無法在c-ares中找到任何API(在ares_init_options()API中),它提供了設置界面的選項。

您能否讓我知道是否有某種方法可以實現這一點,或者我錯過了什麼。

感謝, 阿瓊

+0

不幸的是,很難找到如何讓c-ares做到這一點。刪除了我的答案 – sehe

回答

1

如果你有一個相當新的C-頃(C-戰神> = 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);