目录
- 一.准备工作
- 二.效果展示
- 1.结果
- 2.依赖
- 三.基本思路
- 四.源代码
- 五.总结
本次使用python编写一款wifi路由器厂商查看器,能够扫描并查看附近wifi的基本信息,包括ssid、MAC地址、路由器所属厂商、加密方式、信道、信号强度、wifi信号类型等等,这里最重要的是 路由器所属厂商,Let’s Go!
一.准备工作
python标准库:re、subprocess。
二.效果展示
1.结果
使用了pprint打印输出的结果。
2.依赖
本次设备厂商查找主要依赖于oui.txt.
三.基本思路
四.源代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84import re import subprocess from pprint import pprint class Parse_Mac_Addr(object): def __init__(self): self.oui_file=r'./oui.txt' self.load_oui_file() def load_oui_file(self): with open(self.oui_file,'r',encoding='utf-8')as f: self.oui_file_content=f.readlines() def get_popen_result(self,cmd): find_str = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) execute_result = find_str.stdout.read().decode('gbk',errors='ignore') return execute_result def get_loacl_wifi(self): cmd='netsh wlan show networks mode=bssid' local_wifi_infos=self.get_popen_result(cmd) # print(local_wifi_infos) wifi_data_list=[] wifi_ssids=re.findall('SSID d+ : (.*?)rn',local_wifi_infos) #ssid wifi_macs=re.findall('BSSID 1.*: (.*?)rn',local_wifi_infos) #mac地址 wifi_singles=re.findall('信号.*: (.*?)rn',local_wifi_infos) #信号强度 wifi_types=re.findall('无线电类型.*: (.*?)rn',local_wifi_infos) #无线电类型 wifi_encrypts=re.findall('加密.*: (.*?) rn',local_wifi_infos) #加密方式 wifi_auts=re.findall('身份验证.*: (.*?)rn',local_wifi_infos) #身份验证方式 wifi_channels=re.findall('频道.*: (d+) rn',local_wifi_infos) #信道 wifi_base_rates=re.findall('基本速率(Mbps).*: (.*?)r',local_wifi_infos) #基本速率 wifi_other_rates=re.findall('其他速率.*: (.*?)r',local_wifi_infos) #其他速率 for data in zip(wifi_ssids,wifi_macs,wifi_singles,wifi_types,wifi_encrypts,wifi_auts,wifi_channels,wifi_base_rates,wifi_other_rates): item={} item['wifi_ssid']=data[0] item['wifi_single']=data[2] wifi_mac=data[1] wifi_brand=self.do_search(self.format_mac(wifi_mac)) item['wifi_type']=data[3] item['wifi_encrypt']=data[4] item['wifi_mac']=wifi_mac item['wifi_aut']=data[5] item['wifi_channel']=data[6] item['wifi_base_rate']=data[7] item['wifi_other_rate']=data[8] item['wifi_brand']=wifi_brand wifi_data_list.append(item) pprint(wifi_data_list,sort_dicts=True) print(f'附近有{len(wifi_data_list)}个可连接wifi') return wifi_data_list def format_mac(self,mac): if '-' in mac: mac_format=''.join(mac.split('-')) elif ':' in mac: mac_format=''.join(mac.split(':')) elif ':' in mac: mac_format=''.join(mac.split(':')) else: mac_format=mac if len(mac_format)==12: return mac_format[:6].upper() else: print('mac地址不合法!') def do_search(self,mac): for line in self.oui_file_content: if mac in line: brand_=re.findall('(base 16)tt(.*?)$',line) brand=brand_[0] return brand else: brand='未知厂商' return brand if __name__ == '__main__': p=Parse_Mac_Addr() # test_mac = '00-16-EA-AE-3C-40' # wifi=p.format_mac(test_mac) # print(p.do_search(wifi)) p.get_loacl_wifi()
五.总结
本次使用python撰写了一个wifi路由器厂商查看器,能够帮助我们自动扫描附近的wifi,列出其详细信息包括网卡所属厂商信息,方便又实用,依赖于oui.txt,我把它放在了蓝奏云大家可以自取。思路、代码方面有什么不足欢迎各位大佬指正、批评!
最后
以上就是闪闪天空最近收集整理的关于python3实用小工具--wifi路由器厂商查看器(附源码)一.准备工作二.效果展示三.基本思路四.源代码五.总结的全部内容,更多相关python3实用小工具--wifi路由器厂商查看器(附源码)一.准备工作二.效果展示三.基本思路四.源代码五.总结内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复