[問題] gethostbyname可以指定interface發出dn …
gethostbyname或是getaddrinfo的問題
我在linux環境下寫網路程式~
我的linux機器有很多interface比方eth0 eth1 eth2... 之類的~
不同的interface他們有可能在同個subnet下也可能不同但基本上有不同的用處~
比方程式a的封包都會往eth0送,程式b就往eth1之類的~
但現在有個問題就是~這些不同interface後面的網路中都有各自的dns server~
比方我的/etc/resolv.conf檔可能有三四個 nameserver 對應不同的interface
但比方我在程式b中使用gethostbyname("a.b.c.d")這樣~
linux機器就會對resolv檔內所有的nameserver發出dns request~
就是說如果我resole黨內有3個nameserver分別對應eth0 eth1 eth2的網域
我每做一次gethostbyname(或 getaddrinfo)3個interface都會發出dns request@_@~
請問要怎麼做才能在發dns request時指定只有某interface發出呢
(以上面的例子來說就是程式b中做dns查詢時只有eth1會發這樣..)
因為我看一下gethostbyname的code~ 主要發封包之類的動作都是kernal在作的~
沒辦法像自己寫socket程式可以用bind到某interface上@_@...~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.240.10.231
※ scarface:轉錄至看板 LinuxDev 08/16 14:34
※ 編輯: scarface 來自: 111.240.10.231 (08/16 14:40)