SORU
4 Mart 2011, Cuma


iPhone özel Kütüphanesi olmadan SSID olsun

Ben bir ticari uygulaması olmayan, tamamen meşru bir sebep görmek SSID ağına bağlı: Eğer bağlı bir Geçici ağ için bir 3. parti donanım aygıtı ihtiyacı için işleyen bir biçimde daha farklı olur Internet'e bağlı.

Gördüğüm her şey, SSID anlıyorum ki Apple80211 kullanmak zorunda kaldım söyledi alma konusunda özel bir kütüphane. Ben de özel bir kütüphane kullanırsam Apple app onaylayacak okuma.

Bir Elma ve sert bir yer arasında sıkışmış mıyım, yoksa kaçırdığım bir şey var mı?

CEVAP
4 Mart 2011, Cuma


Ya da bunu yapabilirsiniz, otomatik olarak gerekli çerçevesinde bağlayacak olan YAY ve modülleri yararlanır 8, iOS 7 gibi:

@import SystemConfiguration.CaptiveNetwork;

/** Returns first non-empty SSID network info dictionary.
 *  @see CNCopyCurrentNetworkInfo */
- (NSDictionary *)fetchSSIDInfo
{
    NSArray *interfaceNames = CFBridgingRelease(CNCopySupportedInterfaces());
    NSLog(@"%s: Supported interfaces: %@", __func__, interfaceNames);

    NSDictionary *SSIDInfo;
    for (NSString *interfaceName in interfaceNames) {
        SSIDInfo = CFBridgingRelease(
            CNCopyCurrentNetworkInfo((__bridge CFStringRef)interfaceName));
        NSLog(@"%s: %@ => %@", __func__, interfaceName, SSIDInfo);

        BOOL isNotEmpty = (SSIDInfo.count > 0);
        if (isNotEmpty) {
            break;
        }
    }
    return SSIDInfo;
}

(Bu kod örneği iOS 4.1 yazılı bir modernleşme . Sadece değişiklikleri daha net değişken isimleri tanıtmak ve YAY ve modülleri benimsemişti.)

Örnek çıktı:

2011-03-04 15:32:00.669 ShowSSID[4857:307] -[ShowSSIDAppDelegate fetchSSIDInfo]: Supported interfaces: (
    en0
)
2011-03-04 15:32:00.693 ShowSSID[4857:307] -[ShowSSIDAppDelegate fetchSSIDInfo]: en0 => {
    BSSID = "ca:fe:ca:fe:ca:fe";
    SSID = XXXX;
    SSIDDATA = <01234567 01234567 01234567>;
}

Eğer simülatörü desteklenmediğini unutmayın. Cihaz üzerinde Test.

Biraz şans Sistemi aracılığıyla mağaracılık olabilir 4.1, önce Yapılandırma sözlük. Örneğin, benim Mac üzerinde scutil kullanarak:

$ scutil
> show State:/Network/Interface/en1/AirPort
<dictionary> {
  Power Status : 1
  SecureIBSSEnabled : FALSE
  BSSID : <data> 0xcafecafecafe
  SSID_STR : XXXX
  SSID : <data> 0x012345670123456701234567
  Busy : FALSE
  CHANNEL : <dictionary> {
    CHANNEL : 1
    CHANNEL_FLAGS : 10
  }
}
> exit

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • colacas

    colacas

    29 EKİM 2006
  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • Michelle Phan

    Michelle Pha

    18 Temmuz 2006