python中的reg_python 根据注册表信息获取你去过的地方

从注册表中提取你连接过的无线网络的MAC,然后根据MAC获取你去过的地址

!/usr/bin/python

coding=utf-8

from _winreg import *

import mechanize

import urllib

import re

import urlparse

import os

import optparse

将REG_BINARY值转换成一个实际的Mac地址

def val2addr(val):

addr = ""

for ch in val:

addr += ("%02x " % ord(ch))

addr = addr.strip(" ").replace(" ", ":")[0:17]

return addr

打印网络相关信息

def printNets(username, password):

net = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\Unmanaged"

key = OpenKey(HKEY_LOCAL_MACHINE, net)

print "\n[*]Networks 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

print '[+] ' + netName + ' ' + macAddr

wiglePrint(username, password, macAddr)

CloseKey(netKey)

except:

break

通过wigle查找Mac地址对应的经纬度

def wiglePrint(username, password, netid):

browser = mechanize.Browser()

browser.open('http://wigle.net')

reqData = urllib.urlencode({'credential_0': username, 'credential_1': password})

browser.open('https://wigle.net/gps/gps/main/login', reqData)

params = {}

params['netid'] = netid

reqParams = urllib.urlencode(params)

respURL = 'http://wigle.net/gps/gps/main/confirmquery/'

resp = browser.open(respURL, reqParams).read()

mapLat = 'N/A'

mapLon = 'N/A'

rLat = re.findall(r'maplat=.&', resp)

if rLat:

mapLat = rLat[0].split('&')[0].split('=')[1]

rLon = re.findall(r'maplon=.&', resp)

if rLon:

mapLon = rLon[0].split

print '[-] Lat: ' + mapLat + ', Lon: ' + mapLon

def main():

parser = optparse.OptionParser('usage %prog ' + '-u -p ')

parser.add_option('-u', dest='username', type='string', help='specify wigle password')

parser.add_option('-p', dest='password', type='string', help='specify wigle username')

(options, args) = parser.parse_args()

username = options.username

password = options.password

if username == None or password == None:

print parser.usage

exit(0)

else:

printNets(username, password)

if name == 'main':

main()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值