Python3利用winreg模块读取已连接WiFi并定位地理位置

Oliver
Oliver
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何在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中读取已连接网络并进行定位的完整方法,希望对大家有所帮助,欢迎参考与支持。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表