⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wpas-test.py

📁 IEEE802.11 a/b/g 客户端应用程序源代码
💻 PY
字号:
#!/usr/bin/pythonimport dbusimport sys, osimport timeWPAS_DBUS_SERVICE = "fi.epitest.hostap.WPASupplicant"WPAS_DBUS_INTERFACE = "fi.epitest.hostap.WPASupplicant"WPAS_DBUS_OPATH = "/fi/epitest/hostap/WPASupplicant"WPAS_DBUS_INTERFACES_INTERFACE = "fi.epitest.hostap.WPASupplicant.Interface"WPAS_DBUS_INTERFACES_OPATH = "/fi/epitest/hostap/WPASupplicant/Interfaces"WPAS_DBUS_BSSID_INTERFACE = "fi.epitest.hostap.WPASupplicant.BSSID"def byte_array_to_string(s):	import urllib	r = ""    	for c in s:		if c >= 32 and c < 127:			r += "%c" % c		else:			r += urllib.quote(chr(c))	return rdef main():	if len(sys.argv) != 2:		print "Usage: wpas-test.py <interface>"		os._exit(1)	ifname = sys.argv[1]	bus = dbus.SystemBus()	wpas_obj = bus.get_object(WPAS_DBUS_SERVICE, WPAS_DBUS_OPATH)	wpas = dbus.Interface(wpas_obj, WPAS_DBUS_INTERFACE)	# See if wpa_supplicant already knows about this interface	path = None	try:		path = wpas.getInterface(ifname)	except dbus.dbus_bindings.DBusException, exc:		if str(exc) != "wpa_supplicant knows nothing about this interface.":			raise exc		try:			path = wpas.addInterface(ifname, {'driver': dbus.Variant('wext')})		except dbus.dbus_bindings.DBusException, exc:			if str(exc) != "wpa_supplicant already controls this interface.":				raise exc	if_obj = bus.get_object(WPAS_DBUS_SERVICE, path)	iface = dbus.Interface(if_obj, WPAS_DBUS_INTERFACES_INTERFACE)	iface.scan()	# Should really wait for the "scanResults" signal instead of sleeping	time.sleep(5)	res = iface.scanResults()	print "Scanned wireless networks:"	for opath in res:		net_obj = bus.get_object(WPAS_DBUS_SERVICE, opath)		net = dbus.Interface(net_obj, WPAS_DBUS_BSSID_INTERFACE)		props = net.properties()		# Convert the byte-array for SSID and BSSID to printable strings		bssid = ""		for item in props["bssid"]:			bssid = bssid + ":%02x" % item		bssid = bssid[1:]		ssid = byte_array_to_string(props["ssid"])		wpa = "no"		if props.has_key("wpaie"):			wpa = "yes"		wpa2 = "no"		if props.has_key("rsnie"):			wpa2 = "yes"		freq = 0		if props.has_key("frequency"):			freq = props["frequency"]		caps = props["capabilities"]		qual = props["quality"]		level = props["level"]		noise = props["noise"]		maxrate = props["maxrate"] / 1000000		print "  %s  ::  ssid='%s'  wpa=%s  wpa2=%s  quality=%d%%  rate=%d  freq=%d" % (bssid, ssid, wpa, wpa2, qual, maxrate, freq)	wpas.removeInterface(dbus.ObjectPath(path))	# Should fail here with unknown interface error	iface.scan()if __name__ == "__main__":	main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -