python小工具|python3实用小工具--wifi路由器厂商查看器(附源码)


目录

  • 一.准备工作
  • 二.效果展示
    • 1.结果
    • 2.依赖
  • 三.基本思路
  • 四.源代码
  • 五.总结

本次使用python编写一款wifi路由器厂商查看器,能够扫描并查看附近wifi的基本信息,包括ssid、MAC地址、路由器所属厂商、加密方式、信道、信号强度、wifi信号类型等等,这里最重要的是 路由器所属厂商,Let’s Go!
一.准备工作 python标准库:re、subprocess。
二.效果展示 1.结果 python小工具|python3实用小工具--wifi路由器厂商查看器(附源码)
文章图片

使用了pprint打印输出的结果。
2.依赖 python小工具|python3实用小工具--wifi路由器厂商查看器(附源码)
文章图片

本次设备厂商查找主要依赖于oui.txt.
三.基本思路 python小工具|python3实用小工具--wifi路由器厂商查看器(附源码)
文章图片

四.源代码
import re import subprocess from pprint import pprintclass 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_resultdef 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+ : (.*?)\r\n',local_wifi_infos)#ssid wifi_macs=re.findall('BSSID 1.*: (.*?)\r\n',local_wifi_infos)#mac地址 wifi_singles=re.findall('信号.*: (.*?)\r\n',local_wifi_infos)#信号强度 wifi_types=re.findall('无线电类型.*: (.*?)\r\n',local_wifi_infos)#无线电类型 wifi_encrypts=re.findall('加密.*: (.*?) \r\n',local_wifi_infos)#加密方式 wifi_auts=re.findall('身份验证.*: (.*?)\r\n',local_wifi_infos)#身份验证方式 wifi_channels=re.findall('频道.*: (\d+) \r\n',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_listdef 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\)\t\t(.*?)$',line) brand=brand_[0] return brand else: brand='未知厂商' return brandif __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小工具|python3实用小工具--wifi路由器厂商查看器(附源码)】本次使用python撰写了一个wifi路由器厂商查看器,能够帮助我们自动扫描附近的wifi,列出其详细信息包括网卡所属厂商信息,方便又实用,依赖于oui.txt,我把它放在了蓝奏云大家可以自取。思路、代码方面有什么不足欢迎各位大佬指正、批评!

    推荐阅读