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

#!/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!!!

你可能感兴趣的:(Python)