【问题标题】:How to find the network interface of a server listening on 0.0.0.0 in cpp in linux?如何在linux的cpp中找到监听0.0.0.0的服务器的网络接口?
【发布时间】:2013-10-05 22:37:06
【问题描述】:

我有一个用 cpp 编写的服务器。它正在监听 0.0.0.0。现在我想找到服务器接收数据包的网络接口。有什么办法吗?

【问题讨论】:

    标签: c++ c linux networking ip


    【解决方案1】:
    1. 使用getsockname()获取接收数据包的套接字描述符绑定的IP地址。

    2. 然后使用getifaddr() 循环可用的接口,找到与第一步中找到的IP 地址匹配的接口。

    【讨论】:

    • 我现在正在使用同样的仪式。但有时getsockname() 给出的是没有接口的ip 地址。(当我们执行ifconfig 时,该ip 不存在)知道为什么会这样吗?
    • @user2599593: "Sometimes" 含糊其辞地得出任何结论……尝试设置一个示例并将其作为问题发布在这里。但是,这不应该发生。在调用getsochname() 之后和调用ifconfig 之前,接口可能会关闭?
    猜你喜欢
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2012-05-01
    • 2020-06-06
    • 1970-01-01
    • 2014-07-22
    相关资源
    最近更新 更多