ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

利用Python读取本机无线AP信息并利用Wigle进行定位

2022-05-21 09:31:22  阅读:250  来源: 互联网

标签:__ bssid Python self list wigle AP API Wigle


 

 1 import requests
 2 import subprocess
 3 import sys
 4 import re
 5 
 6 
 7 class APInfo:   #此处AP表示无线热点
 8     def __init__(self) -> None:
 9         self.wigle_API_url = 'https://api.wigle.net/api/v2/network/search'
10         self.wigle_API_name = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'    #需要在wigle注册账户,并获得该API name
11         self.wigle_API_token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'      #需要在wigle注册账户,并获得该API token
12     
13     def get_AP_BSSID_list(self):
14         try:
15             result = subprocess.check_output('netsh wlan show  networks mode=bssid', shell=True, stderr=subprocess.STDOUT,encoding='gbk')
16             pattern = r'(?:BSSID\s*1\s*:\s*)(.*)'
17             BSSID_list = re.findall(pattern,result)                   #获得本机上所有无线AP的BSSID,也就是MAC地址列表
18             return BSSID_list
19         except Exception as e:
20             print(e)
21     
22 
23     def geo_ap(self, bssid):
24         headers = {
25             'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:100.0) Gecko/20100101 Firefox/100.0'
26         }
27         try:
28             response = requests.get(url=self.wigle_API_url,headers=headers,auth=(self.wigle_API_name,self.wigle_API_token), params={'bssid':bssid}).json()   #需要将API name以及API token以auth基础认证的方式提交
29             print(response)
30         except Exception as e:
31             print(e)
32             sys.exit(0)
33     
34     def run(self):
35         bssid_list = self.get_AP_BSSID_list()
36         for bssid in bssid_list:
37             self.geo_ap(bssid)
38 
39 
40 
41 if __name__ == '__main__':
42     ap = APInfo()   
43     ap.run()

 

标签:__,bssid,Python,self,list,wigle,AP,API,Wigle
来源: https://www.cnblogs.com/jason-huawen/p/16294446.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有