我正在编写一个简单的消息队列库,基本上可以让您通过 TCP 或 UDP 在两个服务器之间设置点对点消息传递服务。我想取消客户端/服务器的概念,因为它们的两个服务器将做同样的事情(发送和接收消息),所以哪个是哪个并不重要。
我想我会通过使用两个服务器的 IP 地址来决定哪个应该绑定(bind)服务器套接字以及哪个应该作为客户端连接(可能通过选择具有最小不相等八位字节的那个作为客户端)来做到这一点服务器,假设它不是同一台机器)。
为此,我需要知 Prop 有到另一台计算机的路由的接口(interface) [s] 的本地 IP 地址 [es]。有没有简单的方法来获取此信息?
最佳答案
$ ip route get 2a00:1450:4016:800::1011
2a00:1450:4016:800::1011 from :: via 2a01:4f8:100:63e0::1
dev eth0 src 2a01:4f8:100:6fab:cdef::1 metric 0
iproute 在内部使用 RTM_GETROUTE 网络链接消息来获取信息,您也可以。然后 src 指定将用于联系此主机的地址,如果您使用自动绑定(bind)(即不在连接之前调用 bind(2),或使用地址字段的通配符调用 bind)。
关于c++ - 获取具有到给定主机路由的接口(interface)的 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710394/