2010-04-14 83 views
6

如果是,我們是否也可以獲得有關網絡配置的其他信息?在iPhone上,是否可以找出我們連接的是哪個WIFI網絡?

一個有用的方法可以獲取當前網絡的SSID。有沒有API來做到這一點?

更新:我發現了一個類似的問題在這裏:

Can the iPhone SDK obtain the Wi-Fi SSID currently connected to?

+0

可能重複:http://stackoverflow.com/questions/1625158/iphone-sdk-detect-wifi-and-carrier-network – 2010-04-14 12:11:12

+0

不,不是的那個副本。這位提問者想知道他連接到哪個WiFi網絡,而不是*他是否連接到一個,或者他是否僅通過手機連接(或根本不連接)。 – 2010-04-14 12:16:02

+0

直到幾個星期前,在appstore上有一個名爲WifiTrak(http://www.bitrino.com/wifitrak/support.html)的應用程序,它顯示了範圍內所有可用的wi-fi熱點列表。 然而,它已從appstore中拉出來,所以儘管看起來這是可能的,但無論出於何種原因Apple都可能不會接受它。 – 2010-04-14 13:09:05

回答

1

(獨立回答保存歷史等等)

看起來你可能無法確定WLAN的SSID到你連接,至少在一個應用程序,將進入應用程序商店。 These people使用一個私有的API - Preferences.framework - 去了解WLAN的細節(比如「它隱藏了嗎?」「什麼名字?」等)。

0

你看的Reachability示例應用程序?

編輯:Reachability應用程序演示如何使用SystemConfiguration框架來顯示您的手機是否連接到互聯網,如果是這樣,如何。

它還允許您區分本地WiFi連接而不是(+ [可達性可達性對於本地WiFi])。

關於你的問題的肉,你必須諮詢電話的ARP表。 This answer告訴你如何做到這一點。

+0

或許你可以澄清你的答案。你是說「是的,你可以,這裏有一些示例代碼的鏈接」,或者你在說「不,你不能,但是這裏有一個你可以做的其他事情的想法。」或者你是否在說:「我也不知道,但看看這裏」,作爲一個評論,這真的會更好,因爲它沒有回答這個問題。 – 2010-04-14 12:07:40

+0

可達性樣本僅用於演示檢測IF如何連接到網絡。它沒有顯示我們如何獲得當前網絡的身份。 – Plumenator 2010-04-14 12:09:27

+0

網絡識別是什麼意思?你的意思是WLAN的SSID? – 2010-04-14 13:00:36

1

不能發表評論,但是這可能是一個重複:

Accessing iPhone WiFi Information via SDK

的答案似乎是否定的。我已經做了我自己的研究,並且一直無法找到獲得SSID的支持方式。

2

嘗試以下方法:

#import <SystemConfiguration/CaptiveNetwork.h> 

NSString *wifiName = @"Not Found"; 
CFArrayRef myArray = CNCopySupportedInterfaces(); 

if (myArray != nil) { 

    CFDictionaryRef myDict = CNCopyCurrentNetworkInfo(CFArrayGetValueAtIndex(myArray, 0)); 

    if (myDict != nil) { 
     NSDictionary *dict = (NSDictionary*)CFBridgingRelease(myDict); 

     wifiName = [dict valueForKey:@"SSID"]; 

    } 
} 

NSLog(@"wifiName:%@", wifiName); 
相關問題