Python3利用winreg模块读取已连接WiFi并定位地理位置
本文介绍如何在Python3中通过winreg模块读取Windows注册表中的历史WiFi连接记录,并结合外部API实现地理位置定位。重点说明Python2中_winreg模块在Python3中更名为winreg,并提供完整代码示例及注意事项。
具体实现代码如下所示:
#!/usr/bin/python
# coding=utf-8
import json
from urllib.request import urlopen
from winreg import *
def val2addr(val):
addr = ""
for ch in val:
addr += ("%02x " % ord(ch))
addr = addr.strip(" ").replace(" ", ":")[0:17]
return addr
def printNets():
net = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"
key = OpenKey(HKEY_LOCAL_MACHINE, net)
print(r"\nNetworks You have Joined.")
for i in range(100):
try:
guid = EnumKey(key, i)
netKey = OpenKey(key, str(guid))
(n, addr, t) = EnumValue(netKey, 5)
(n, name, t) = EnumValue(netKey, 4)
macAddr = val2addr(addr)
netName = name
jsondata = urlopen('http://api.cellocation.com:81/wifi/?mac=' + macAddr + '&output=json').read()
data = json.loads(jsondata)['address']
if data == '':
address = 'unknow'
else:
address = data
print('[+] ' + netName + ' ' + macAddr + ' ' + address)
CloseKey(netKey)
except:
break
def main():
printNets()
input('please press enter')
if __name__ == '__main__':
main()
主要依赖内置模块:
需要注意的是,Python2中使用的_winreg模块在Python3中已更名为winreg。
以上就是在Python3中读取已连接网络并进行定位的完整方法,希望对大家有所帮助,欢迎参考与支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













