在 C/C++ 中查找可用的网络接口? [关闭]
Posted
技术标签:
【中文标题】在 C/C++ 中查找可用的网络接口? [关闭]【英文标题】:Find available network interfaces in C/C++? [closed] 【发布时间】:2012-01-16 02:54:50 【问题描述】:有人知道用于查找可用网络接口的 C/C++ 代码吗?
我一直在寻找一些代码,但大多数时候它们都非常复杂。有没有简单的方法来做到这一点?
【问题讨论】:
查看 linux 的 ifconfig 源代码?或者,ethereal 的开源版本? Unbutu/Linux。我是这方面的新手,我一直在互联网上寻找一些代码,但其中一些有点难以理解。 为了让您了解所需的系统调用,请按照this answer 中的建议在strace
下运行netstat
。
【参考方案1】:
参见getifaddrs 手册页。最后有一个示例程序。
【讨论】:
【参考方案2】:如果您在桌面应用程序的上下文中查找此内容,并且希望收到更改通知(例如接口连接/断开连接),请考虑使用 DBus 来监控 NetworkManager。
http://projects.gnome.org/NetworkManager/developers/api/09/spec.html
您可以枚举接口以及特定于接口的事物(例如可用和已连接的 WiFi 接入点、已配置但未拨号的 PPP 链接等),如果有任何变化,您将收到通知通过 DBus。
(如果这更像是一个服务器程序,您希望网络配置保持更稳定,那么像getifaddrs
这样的东西可能更合适。)
【讨论】:
以上是关于在 C/C++ 中查找可用的网络接口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C/C++ Linux,如何在不使用 IP 的情况下在网络上查找邻居(仅限 MAC)