windows学python_python 学习之 WINDOWS 注册表学习(一)

文章出自《Python绝技 运用Python成为顶级***》中部分代码,稍作修改

遍历Windows注册表键值,代码如下:

import _winreg

key=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer")

try:

i=0

while 1:

#EnumValue枚举键值,EnumKey枚举子键(guid=_winrge.EnumKey(key,i))

name,value,type=_winreg.EnumValue(key,i)

print "name: "+repr(name)

print "type: "+repr(type)

print "value: "+repr(value)

print "__________________________"

i+=1

except WindowsError:

print

效果

下面我们编写个在WINDOWS操作系统中,查找曾经访问过的有线网络和无线网络,对应的网关的Mac地址的脚本

import _winreg

def val2addr(val):

addr=''

for ch in val:

#ord 作用:字符转换为10进制整数 ;"%02x"以16进制输出变量,如果输出的变量不足2位用0补足

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=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,net)

print '\n[*] Networks You have Joined.'

for i in range(100):

try:

guid=_winreg.EnumKey(key,i)

netKey=_winreg.OpenKey(key,str(guid))

n,addr,t=_winreg.EnumValue(netKey,5)

macAddr=repr(addr)

n,name,t=_winreg.EnumValue(netKey,4)

netName=repr(name)

macAddr=val2addr(addr)

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

_winreg.CloseKey(netKey)

except WindowsError:

print

def main():

printNets()

if __name__=="__main__":

main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值