【问题标题】:Find available network interfaces in C/C++? [closed]在 C/C++ 中查找可用的网络接口? [关闭]
【发布时间】:2012-01-16 02:54:50
【问题描述】:

有人知道用于查找可用网络接口的 C/C++ 代码吗?

我一直在寻找一些代码,但大多数时候它们都非常复杂。有没有简单的方法来做到这一点?

【问题讨论】:

  • 查看 linux 的 ifconfig 源代码?或者,ethereal 的开源版本?
  • Unbutu/Linux。我是这方面的新手,我一直在互联网上寻找一些代码,但其中一些有点难以理解。
  • 为了让您了解所需的系统调用,请按照this answer 中的建议在strace 下运行netstat

标签: c++ c linux networking ubuntu


【解决方案1】:

参见getifaddrs 手册页。最后有一个示例程序。

【讨论】:

    【解决方案2】:

    如果您在桌面应用程序的上下文中查找此内容,并且希望收到更改通知(例如接口连接/断开连接),请考虑使用 DBus 来监控 NetworkManager。

    http://projects.gnome.org/NetworkManager/developers/api/09/spec.html

    您可以枚举接口以及特定于接口的事物(例如可用和已连接的 WiFi 接入点、已配置但未拨号的 PPP 链接等),如果有任何变化,您将收到通知通过 DBus。

    (如果这更像是一个服务器程序,您希望网络配置保持更稳定,那么像getifaddrs 这样的东西可能更合适。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-25
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多