假设我有一个来自 socket(2)
的文件描述符我已经完成了 connect(2)
关于它 - 以后有什么方法可以确定(从正在运行的程序内部)可能用于底层传输的网络设备?调用 stat(2)
在 fd 上给出的设备号为 0;没有ioctl(2)
或 getsockopt(2)
选项似乎适用。
最佳答案
这样做没有万无一失的方法——当然不是符合 posix 的方法。
但是,在实践中,您可以在 99% 的时间内轻松确定接口(interface)。在你完成 connect
之后, 使用 getsockname
获取 IP 地址,然后在盒子上的可用接口(interface)列表中查找具有匹配 IP 地址的接口(interface)。
关于sockets - 我可以找到正在处理我的套接字的网络接口(interface)/设备吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39104990/