我正在尝试使用 C 确定将在套接字上使用哪个本地 IP 与 Linux 上的给定主机建立 TCP 连接。
让我举个例子。我可以连接我的套接字并在文件描述符上使用 getsockname() 来获取本地 ip(和本地 TCP 端口);但是我可以在不打开连接的情况下做到这一点吗?
我可以读取路由表并据此做出决定——但网络子系统必须已经具有该算法,以便在连接实际打开时。简而言之,我想知道是否有 API 可以访问路由算法,而无需自己解析规则或打开实际连接。解决方案——如果有的话——可能只是 Linux,但没关系。
编辑:IRC 上的某个人建议我创建一个 UDP 套接字并在其上使用 connect()。那时没有使用网络,但我应该能够在其上使用 getsockname()