iPhone WiFi子网掩码和路由器地址

bva*_*erw 11 iphone wifi

我有代码允许我确定iPhone上的WiFi连接的MAC地址和IP地址,但我无法弄清楚如何获得连接的子网掩码和路由器地址.任何人都能指出我在正确的方向吗?

ben*_*ado 13

您可以通过致电getifaddrs获取该信息.(我在我的应用程序中使用此功能来计算iPhone的IP地址.)

struct ifaddrs *ifa = NULL, *ifList;
getifaddrs(&ifList); // should check for errors
for (ifa = ifList; ifa != NULL; ifa = ifa->ifa_next) {
   ifa->ifa_addr // interface address
   ifa->ifa_netmask // subnet mask
   ifa->ifa_dstaddr // broadcast address, NOT router address
}
freeifaddrs(ifList); // clean up after yourself
Run Code Online (Sandbox Code Playgroud)

这可以获得子网掩码; 对于路由器地址,请参阅此问题.

这是所有老式UNIX网络的东西,你必须找出哪些接口是WiFi连接(其他东西,如环回接口也将在那里).然后,您可能必须使用inet_ntoa()等函数,具体取决于您要读取IP地址的格式.它不坏,只是乏味和丑陋.玩得开心!

  • @Bill:修正我的回答,请重新考虑你的downvote. (2认同)