绑定和IP别名

时间:2012-03-01 09:41:59

标签: network-programming

Ip Aliasing允许我们将多个IP地址关联到同一个接口。我的问题是如何绑定并因此从与接口相关的所有地址接收数据?有没有像INADDR_ANY这样的选项?

2 个答案:

答案 0 :(得分:2)

永远记住bind(2)不绑定到接口,但地址

每个套接字通常只存储一个绑定,即使它是0.0.0.0端口0.在检查传入请求时,只需将0.0.0.0,::和端口0作为通配符。因此,对于非通配符地址,您将需要一个套接字。

如果你真的需要接口绑定,请参阅setsockopt SO_BINDTODEVICE,但这通常不是在除了例如以外的程序中做的正确的事情。 tcpdump,因为即使它们允许接收,它也会抑制不同接口的接触。例如,如果您自己的主机将192.168.0.1作为专用LAN上的地址,则绑定到eth1将无法通过lo从.0.1本身连接到192.168.0.1。因此,设备绑定通常是不受欢迎的。

答案 1 :(得分:1)

尝试使用setsockopt和SO_BINDTODEVICE绑定到界面。

相关问题