2013-03-02 3 views
8

Sono curioso di sapere se sarebbe possibile utilizzare qualsiasi strumento Python per sondare la potenza del segnale Wi-Fi in OS X. La maggior parte delle mie ricerche sta producendo solo strumenti Python per Linux, ma nessuno per OS X.C'è un modo per accedere ai dati Wi-Fi di OS X usando Python? (Potenza del segnale, ad esempio)

In caso contrario, esistono altri modi per ottenere tali dati a livello di programmazione?

+0

Non ho mai avuto bisogno di questa funzione specifica (né la vedo fuori nei documenti), ma i moduli specifici di OS X possono essere visualizzati su http://docs.python.org/2/library/mac.html –

+0

+1 Non ho mai visto niente di simile prima – Daniel

risposta

7

La risposta a this question descrive come caricare il framework CoreWLAN. Una volta fatto questo, si può utilizzare la classe CWInterface per trovare l'RSSI, tra le altre statistiche:

import objc 
objc.loadBundle('CoreWLAN', 
       bundle_path='/System/Library/Frameworks/CoreWLAN.framework', 
       module_globals=globals()) 

for iname in CWInterface.interfaceNames(): 
    interface = CWInterface.interfaceWithName_(iname) 
    print """ 
Interface:  %s 
SSID:   %s 
Transmit Rate: %s 
Transmit Power: %s 
RSSI:   %s""" % (iname, interface.ssid(), interface.transmitRate(), 
         interface.transmitPower(), interface.rssi()) 

Vedere la CWInterface docs per l'elenco completo delle proprietà disponibili.

1

Per Mac è disponibile uno strumento da riga di comando denominato aeroporto. È possibile regolare manualmente le impostazioni Wi-Fi, le impostazioni della scheda di rete, risolvere i problemi di rete, modificare i tipi di sicurezza utilizzati in una connessione, acquisire pacchetti in un file pcap, unire e lasciare reti, dimenticare una rete wifi, assegnare priorità a router e reti, vedere la potenza del segnale e l'interferenza ecc

il suo solito qui - /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

si può semplicemente digitare questo aiuto

airport 
airport -h 

Usando questo e sottoprocesso insieme si dovrebbe essere in grado di fare la maggior parte di queste cose in pitone