My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
Apple80211GetInfoCopy  
Updated Feb 4, 2010 by pumpkingod@gmail.com

Retrieves information from the currently bound interface.

int Apple80211GetInfoCopy(struct Apple80211 *handle, CFDictionaryRef *info);

Parameters

  • handle An open handle from an Apple80211Open call, that has also been bound to an interface using Apple80211BindToInterface
  • info A (returned) pointer to a CFDictionary containing the information

Returns

  • 0 if successful, who knows what else otherwise (seems to be -1 if it doesn't crash)
  • info a CFDictionaryRef containing key/value pairs of information about the interface (see below)

Known CFDictionary keys for info

All keys are CFStrings

  • STATE - An integer CFNumber indicating the state of the device. Its value is 4 if the interface is associated
  • SSID_STR - A CFString containing the network name the interface is currently associated with (may be absent if the interface is not associated)
  • POWER - A CFArray that appears to contain one CFNumber (not sure what it means)
  • BSSID - A CFString containing a colon-separated BSSID (MAC address) of the currently associated network (may be absent if the interface is not associated)
  • TXPOWER - An integer CFNumber containing the current transmit power?
  • POWERSAVE - An integer CFNumber indicating whether the device is currently in power saving mode?
  • RSSI - A CFDictionary of information on the signal strength
  • AUTH_TYPE - A CFDictionary of information on the authentication type?
  • SSID - A CFData containing the currently associated SSID in an unknown format
  • CHANNEL - A CFDictionary containing the channel and channel flags (the flags are currently unknown)
  • RATE - An integer CFNumber containing the current rate of the connection (seems to be in megabits per second)

Sample Output

The following is the output of a CFShow on the returned CFDictionaryRef:

<CFDictionary 0x1031a0 [0x383e8174]>{type = mutable, count = 11, capacity = 12, pairs = (
	0 : <CFString 0x3a6df94c [0x383e8174]>{contents = "STATE"} = <CFNumber 0x104aa0 [0x383e8174]>{value = +4, type = kCFNumberSInt32Type}
	2 : <CFString 0x3a6df9fc [0x383e8174]>{contents = "SSID_STR"} = <CFString 0x104ce0 [0x383e8174]>{contents = "Domus"}
	3 : <CFString 0x3a6df99c [0x383e8174]>{contents = "POWER"} = <CFArray 0x104a60 [0x383e8174]>{type = mutable-small, count = 1, values = (
		0 : <CFNumber 0x104a80 [0x383e8174]>{value = +1, type = kCFNumberSInt32Type}
	)}
	5 : <CFString 0x3a6dfa0c [0x383e8174]>{contents = "BSSID"} = <CFString 0x104cf0 [0x383e8174]>{contents = "0:11:24:5c:7b:7"}
	6 : <CFString 0x3a6df93c [0x383e8174]>{contents = "TXPOWER"} = <CFNumber 0x104a90 [0x383e8174]>{value = +20, type = kCFNumberSInt32Type}
	7 : <CFString 0x3a6df92c [0x383e8174]>{contents = "POWERSAVE"} = <CFNumber 0x104a80 [0x383e8174]>{value = +1, type = kCFNumberSInt32Type}
	8 : <CFString 0x3a6df9ac [0x383e8174]>{contents = "RSSI"} = <CFDictionary 0x104af0 [0x383e8174]>{type = mutable, count = 2, capacity = 3, pairs = (
		0 : <CFString 0x3a6dfdcc [0x383e8174]>{contents = "RSSI_CTL_AGR"} = <CFNumber 0x104b50 [0x383e8174]>{value = +21, type = kCFNumberSInt32Type}
		3 : <CFString 0x3a6dfe0c [0x383e8174]>{contents = "RSSI_UNIT"} = <CFNumber 0x103210 [0x383e8174]>{value = +80, type = kCFNumberSInt32Type}
	)}
	9 : <CFString 0x3a6df9cc [0x383e8174]>{contents = "AUTH_TYPE"} = <CFDictionary 0x104c50 [0x383e8174]>{type = mutable, count = 2, capacity = 3, pairs = (
		2 : <CFString 0x3a6dfc2c [0x383e8174]>{contents = "AUTH_LOWER"} = <CFNumber 0x104a80 [0x383e8174]>{value = +1, type = kCFNumberSInt32Type}
		3 : <CFString 0x3a6dfc3c [0x383e8174]>{contents = "AUTH_UPPER"} = <CFNumber 0x104aa0 [0x383e8174]>{value = +4, type = kCFNumberSInt32Type}
	)}
	10 : <CFString 0x3a6df9ec [0x383e8174]>{contents = "SSID"} = <CFData 0x104ad0 [0x383e8174]>{length = 5, capacity = 16, bytes = 0x446f6d7573}
	12 : <CFString 0x3a6df9bc [0x383e8174]>{contents = "CHANNEL"} = <CFDictionary 0x104b60 [0x383e8174]>{type = mutable, count = 2, capacity = 3, pairs = (
		0 : <CFString 0x3a6df9bc [0x383e8174]>{contents = "CHANNEL"} = <CFNumber 0x104a80 [0x383e8174]>{value = +1, type = kCFNumberSInt32Type}
		1 : <CFString 0x3a6dfa3c [0x383e8174]>{contents = "CHANNEL_FLAGS"} = <CFNumber 0x104bc0 [0x383e8174]>{value = +8, type = kCFNumberSInt32Type}
	)}
	13 : <CFString 0x3a6df98c [0x383e8174]>{contents = "RATE"} = <CFNumber 0x103200 [0x383e8174]>{value = +54, type = kCFNumberSInt32Type}
)}
Comment by albrecht...@gmail.com, May 7, 2009

Not by purpose I found that the SSID in the above example is the ascii code for DOMUS, which is the SSID_STR in fact.

Comment by sleepy...@gmail.com, Jan 10, 2010

can anyone please comment and help on how can I use this function?

Comment by rahul7s...@gmail.com, Sep 6, 2010

wow its working :-) glad

Comment by mit3z.g...@gmail.com, Jun 2, 2011

Looks like CFNumber of POWER describes if interface radio is on/off (1/0 respectively).


Sign in to add a comment
Powered by Google Project Hosting