2015-01-12 76 views
2

我需要從我的iOS應用程序中找到Wi-Fi的路由器地址。我在網上搜索了一個解決方案,但似乎沒有做到這一點。我需要一些不使用私有API的東西,並不違反Apple政策。如何在Objective-C中查找路由器的IP地址?

我已經嘗試過以下文章中找到的解決方案,並且它們中沒有一個實際上給我路由器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課程是waaaaay遙遠的時間)...

謝謝!

+3

我用你的最後一個環節,以解決同樣的問題(從斯威夫特和與未成年人修復卸下內存泄漏調用)所示托馬斯·伯納德的代碼。它運作良好。關於IP計算,你不能這樣做,網關IP可能位於網絡有效IP範圍內的任何地方。 – cmatsuoka

+1

對此的快速搜索也揭示了提供大量網絡服務調用的[iOS-​​System-Services](https://github.com/Shmoopi/iOS-System-Services)庫。只需獲取我自己的IP地址並將其投入演示項目的代碼驗證了它的工作原理 –

+0

最好的方法,雖然很難,但基於C的系統配置框架。請記住,像所有網絡連接一樣,它是暫時的。 – uchuugaka

回答

1

我找到了一個解決方案,併成功地進行了測試。它來自這個回購https://github.com/SiteView/GenieForiOS,我只提取了我的getRouterIPAddress函數所需的代碼。

聲明:我不是Objective-C開發人員,所以下面的代碼可能有很多問題。請隨時糾正我。

我也將它製作成Cordova插件,並在回購中包含一個演示項目。它做我需要的。我還添加了一個只有3行長的Android版本。 :)

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

+0

很高興聽到你找到了解決方案:) –

+0

此外,Android版本是貢獻於回購:)享受! – Vallieres