WiBroute
/
net_wrap.py
45 строк · 1.6 Кб
1import subprocess
2# return list of all available Network-Device Names
3def interfacesList():
4return subprocess.check_output("ifconfig -a | sed 's/[ \t].*//;/^$/d'", shell=True).decode("utf-8")[:-1].split("\n")
5
6def interfaceUp(interface="lo"):
7subprocess.run("ifconfig "+interface+" up", shell=True, check=True)
8
9def interfaceDown(interface="lo"):
10subprocess.run("ifconfig "+interface+" down", shell=True, check=True)
11
12def wifiList(interface="lo"):
13sysOut=subprocess.check_output("iwlist "+interface+" scan", shell=True).decode("utf-8")[:-1].split("Cell ")
14
15resultList=[]
16
17for cell in sysOut:
18cellDic={}
19
20for line in cell.split("\n"):
21if line.find("Address:")>=0:
22cellDic['Address']=line.split("Address: ")[1]
23elif line.find("Channel:")>=0:
24cellDic['Channel']=line.split("Channel:")[1]
25elif line.find("Frequency:")>=0:
26cellDic['Frequency']=line.split("Frequency:")[1]
27elif line.find("Signal level=")>=0:
28cellDic['Signal level']=line.split("Signal level=")[1]
29elif line.find("Encryption key:")>=0:
30cellDic['Encryption key']=line.split("Encryption key:")[1]
31elif line.find("ESSID:")>=0:
32cellDic['ESSID']=line.split("ESSID:")[1]
33if len(cellDic)>0:
34resultList.append(cellDic)
35return resultList
36def tryConnect(ssid, password, interface):
37try:
38print()
39sysOut=subprocess.check_output("nmcli d wifi connect "+ssid+" password "+password.replace("!","\!").replace("\n","").replace("?","\?")+" iface "+ interface, shell=True).decode("utf-8")[:-1]
40except:
41return False
42if sysOut.find('successfully')>0:
43return True
44else:
45return False