2016-01-20 28 views
0

我在iOS應用中實現網絡可達性。我的服務器有一個C類IP地址192.168.x.x.通過移動設備在iOS上可以訪問的C類地址

當兩個wifi一個3G都打開我的設備。可達性標誌告訴我目的地通過wifi可達。

當我在設備上關閉wifi但保持3G打開時,網絡可達性標誌告訴我可通過移動設備訪問目的地。

我的理解是,這是不可能的,因爲我的服務器不公開在互聯網上。

移動服務提供商的網關是否有可能在內部具有該IP的服務器,或者它總是虛假地表明該IP地址是可達的。我在英國的O2網絡。

只是櫃面它與我的應用程序有問題我也得到了與蘋果應用實例

回答

1

系統不知道是否可以連接到特定的IP(沒有實際連接到它,並取得成功的結果相同/失敗)。它知道您的設備是否具有網絡連接。

如果你連接到互聯網,你可以建立連接到任何IP地址,甚至在私人範圍內。這種連接可能會失敗的事實是另一回事。

當應用程序發送到網絡堆棧的數據包可以離開本地設備時,認爲遠程主機可訪問。

+0

感謝Mirek的快速反應,但我有點困惑。爲網絡可達性提供主機名或IP地址有什麼意義。它是不是試圖讓那個生意人去決定是否有通向它的途徑? – rideintothesun

+0

問題是,如果您可以嘗試連接到IP /主機,則Reachability API可以返回。就像如果你有一個有效的IP路由條目的目的地,如果你的DNS正在工作,並且你的網絡接口已經啓動。公共Wifi熱點通常會阻止互聯網訪問,直到用戶通過網絡界面進行身份驗證。或者您只能連接到對等點。在這種情況下,你的對等體的地址是可達的,但其他的不是。 IP非常複雜,如果沒有真正嘗試的話,你永遠不可能知道某些東西是否可達。 – Mirek

+0

謝謝Mirek。好的,所以我看到的是,如果我使用IP地址,設備始終認爲它是可到達的,即使該IP地址不在互聯網上通過3g存在。但是,當我提供一個可用於wifi但不是3G的主機名。它報告它無法通過3G連接,因爲它無法解析DNS。它是否正確? – rideintothesun

相關問題