我正在用 python 实现一个原始套接字程序,我遇到了bind()
可以将我的套接字绑定到接口的地方。据我了解,此函数的第一个字段是我希望绑定到的接口。 第二个领域是什么?这是 Ethertype(例如 IP4)吗?在 Python 参考文档中找到的原始套接字示例中,代码如下所示:
# create a raw socket and bind it to the public interface
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
s.bind((HOST, 0))
为什么第二个字段为零?在其他示例中,我看到这经常设置为 0x0800(或十进制的 2048),这让我相信这可能会将套接字设置为 IP4 协议。我也看到这个设置为 9999。也许我在这里遗漏/误解了一些东西。