【问题标题】:How to find the router IP address in Objective-C?如何在 Objective-C 中找到路由器 IP 地址?
【发布时间】:2015-03-10 15:26:35
【问题描述】:

我需要从我的 iOS 应用中找到 Wi-Fi 的路由器地址。我在网上搜索了解决方案,但似乎没有任何效果。我需要一些不使用私有 API 且不违反 Apple 政策的东西。

我尝试了以下文章中的解决方案,但它们都没有真正给我路由器 IP 地址。

How can I determine the default gateway on iPhone?

Fetching IP address of router to which iPhone is connected

Objective-C : How to fetch the router address?

How to get the WIFI gateway address on the iPhone?

还有一种方法可以从掩码和设备 IP 中“计算”IP(或者我的 TCP/IP 课程可以追溯到很久以前)...

谢谢!

【问题讨论】:

  • 我使用您上一个链接中显示的 Thomas Bernard 的代码来解决相同的问题(从 Swift 调用并进行小修复以消除内存泄漏)。它运作良好。关于IP计算,你不能这样做,网关IP可以是网络有效IP范围内的任何地方。
  • 对此的快速搜索还显示了iOS-System-Services 库,它提供了许多网络服务调用。只需获取获取我自己的 IP 地址的代码并将其放入演示项目中即可验证它是否有效
  • 最好的方法是基于 C 的系统配置框架,虽然不容易。请记住,与所有网络连接一样,它是短暂的。
  • @LouisTur 是的,我找到并尝试了。我给了我关于它报告内容的准确信息,但遗憾的是没有给我路由器 IP 地址。
  • @uchuugaka 你有例子吗?我认为没有其他人共享代码它不会像 getRouterIPAddress() 那样简单;)

标签: ios objective-c networking router


【解决方案1】:

我找到了解决方案并成功测试了它。它取自这个 repo https://github.com/SiteView/GenieForiOS,我只提取了我的 getRouterIPAddress 函数所需的代码。

免责声明:我不是 Objective-C 开发人员,因此以下代码可能存在大量问题。请随时纠正我。

我还把它做成了一个 Cordova 插件,并在 repo 中包含了一个演示项目。它做我需要的。我还添加了一个 Android 版本,它只有 3 行长。 :)

https://github.com/vallieres/cordova-plugin-get-router-ip-address

【讨论】:

  • 很高兴听到您找到了解决方案 :)
  • 此外,Android 版本已被贡献到 repo :) 享受!
猜你喜欢
  • 1970-01-01
  • 2011-01-07
  • 1970-01-01
  • 2016-11-03
  • 2016-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多