使用 ifaddrs API,我能够检测到不同的接口,如 eth0(用于以太网)/wlan0(用于无线)/ppp0(用于蜂窝)。
我已经阅读了有关 android 的讨论:Detect network connection type on Android
是否类似于这些东西在 C/unix 编程中可用?即我可以在unix 中使用c 程序区分不同的蜂窝接口吗?
使用 ifaddrs API,我能够检测到不同的接口,如 eth0(用于以太网)/wlan0(用于无线)/ppp0(用于蜂窝)。
我已经阅读了有关 android 的讨论:Detect network connection type on Android
是否类似于这些东西在 C/unix 编程中可用?即我可以在unix 中使用c 程序区分不同的蜂窝接口吗?
如果您使用的是蜂窝调制解调器,您可以通过串行端口(Tx、Rx、Grnd)发送 AT 命令直接查询它。蜂窝调制解调器的参考应该有您需要检测其当前连接类型的命令(例如,如果它的 SIM900D 蜂窝调制解调器,请在参考指南中搜索 SIM900D)。您需要知道蜂窝调制解调器在什么级别上运行,例如 TTL 电压级别,并购买正确的串行接口芯片(例如这里的 USB 转串口https://www.sparkfun.com/products/9019)以发送AT命令它并接收输出。
这种操作将 100% 依赖于系统,并且众所周知,网络设备的处理在 Unix 系统上是可变的和临时的(例如,有时它们在 中/dev
,有时不在)。似乎没有用于处理该问题的标准化跨平台库。如果你打算在 Linux 上运行,你可以询问NetworkManager
接口信息。