Python3之读取连接过的网络并定位的方法

yipeiwu_com6年前Python基础

如下所示:

#!/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设计】。

相关文章

使用Django搭建一个基金模拟交易系统教程

亲手教你如何搭建一个基金模拟系统(基于Django框架) 第一步:创建项目、APP以及静态文件存储文件夹 django-admin startproject Chongyang dj...

粗略分析Python中的内存泄漏

引子 之前一直盲目的认为 Python 不会存在内存泄露, 但是眼看着上线的项目随着运行时间的增长 而越来越大的内存占用, 我意识到我写的程序在发生内存泄露, 之前 debug 过 lo...

Django Rest framework三种分页方式详解

Django Rest framework三种分页方式详解

前言 我们数据库有几千万条数据,这些数据需要展示,我们不可能直接从数据库把数据全部读取出来. 因为这样会给内存造成巨大的压力,很容易就会内存溢出,所以我们希望一点一点的取. 同样,展示的...

十条建议帮你提高Python编程效率

十条建议帮你提高Python编程效率

程序员的时间很宝贵,Python这门语言虽然足够简单、优雅,但并不是说你使用Python编程,效率就一定会高。要想节省时间、提高效率,还是需要注意很多地方的。 今天就与大家分享资深Pyt...

python创建n行m列数组示例

我就废话不多说了,直接上代码吧! >>> matrix=[None]*2 >>> print(matrix) [None, None] >&...