在 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++ 中查找可用的网络接口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

5G NRNG接口

C/C++ Linux,如何在不使用 IP 的情况下在网络上查找邻居(仅限 MAC)

如何获取 Linux/UNIX 上当前的网络接口吞吐量统计信息? [关闭]

在 C/C++ 中寻找 GD 教程 [关闭]

使用不同的 Python 工具接口 C/C++ [关闭]

在 Qt 中查找可用的网络接入点