python实现远程通过网络邮件控制计算机重启或关机
作者:KittyGirllll 发布时间:2022-04-16 01:05:27
标签:python,远程控制
需求分析:
python实现一个远程通过网络邮件控制计算机重启或关机的项目。
程序流程:
过程分析:
要实现本功能,首先要直到在本地如何通过Python控制计算机的重启和关机,然后需要知道如何远程发送消息给Python程序。可以在Python中执行CMD命令控制计算机的重启和关机,把发送电子邮件作为远程控制的渠道。Python程序自动登录邮箱检测邮件,当发送关机指令给这个邮箱时,则执行关机命令。
1.通过os.system()函数执行CMD命令
import os
os.system('shutdown /s /t 1')
2.SMTP是一组用于由源地址到目的地址传送邮件的规则,可以控制信件的中转方式。SMTP属于TCP/IP协议簇,通过SMTP指定的服务器,可以把E-mail寄到收信人的服务器上。
import smtplib
s=smtplib.SMTP('smtp.163.com')
msg=s.ehlo()
code=msg[0]
print(msg)
print("SMTP code is%d" %(code))
在发送E-mail时,客户应该以EHLO命令开始SMTP会话。如果命令成功,则服务器返回代码250。
3.POP用于使用客户端远程管理在服务器上的电子邮件。最流行的是POP3,属于TCP/IP协议簇,用于接收E-mail。
from poplib import POP3
s=poplib.POP3(pop3.163.com)
s.user(username)
s.pass_(password)
ret=s.stat()
具体实现:
控制端计算机程序:
import email
import smtplib
import time
import os,sys
import random
def send_mail():
try:
s=smtplib.SMTP('smtp.163.com')#连接服务器
s.login('fromusername','password')#登录发送发账号
msg="To:tousername@163.com\r\nFrom:fromusername@163.com\r\nSubject:shutdown \r\n\r\nshutdown\r\n"#设置邮件内容
s.sendmail('fromusername@163.com','tousername@163.com',msg)#发送邮件
s.close()
return 1
except (smtplib.SMTPException) as e:
print e
return 0
if __name__=='__main__':
while send_mail()==0:#如果发送失败,10s后再发一次
time.sleep(10)
被控制端计算机程序:
#-*- encoding:utf-8 -*-
import os,sys,string
import poplib
import os
import time
#pop3服务器地址
host="pop3.163.com"
#用户名
username="***********@163.com"
#密码
password="******"
#取第一封邮件完整信息,在返回值里,按行存储在down[1]的列表里,down[0]是返回的状态信息
while True:
#创建一个POP3对象,这个时候实际上已经连接到服务器
p=poplib.POP3(host)
#向服务器发送用户名
p.user(username)
#向服务器发送密码
p.pass_(password)
#列出邮件信息,num为邮件数量,total_size为邮件总的大小
num,total_size=p.stat()
down=p.retr(num)#获取最新邮件到元组down
#元组down的第2个元素为邮件内容
mails=down[1]
print mails
for line in mails:#遍历邮件内容的每一行
if line.find('Subject')==0:#找到标题行
print line
if line.find('shutdown')>0:#如果标题为shutdown
p.dele(num)#删除该邮件,以防下次遍历时造成重复关机
p.quit()#关机前退出邮箱
print 'shutdown...'
os.system(' shutdown /s /t 10')#关机
p.quit()#每次轮询最后都退出邮箱
time.sleep(5)#每次轮询都休眠5s
来源:http://blog.csdn.net/HEYIAMCOMING/article/details/76637986
0
投稿
猜你喜欢
- 1. *表示匹配任意多个字符 \d*表示匹配任意多个数字字符import retext = "
- 导言(Introduction)这个提案描述了如何在jQuery的核心库中增加模板支持。更为特别是,这个提案描述了一个新的jQuery方法-
- 面部识别----考勤打卡、注册登录、面部支付等等...感觉很高大上,又很方便,下面用python中的框架--django完成一个注册登录的功
- asp编程中我们经常要处理字符串,比如一个新闻列表,在我们编写asp程序的时候就要考虑到新闻标题的长度不确定性,因为有的文章标题可能很长,可
- python库-密码学库pynacl什么是pynacl官方: https://pynacl.readthedocs.io/en/latest
- scrapy框架只能爬取静态网站。如需爬取 * 站,需要结合着selenium进行js的渲染,才能获取到动态加载的数据。如何通过seleni
- 一、正则表达式的作用提示:正则表达式是一段特殊的字符串,它表示的是一段有规律的信息。如果我们想从一段文字中提取想要的内容,就可以通过正则表达
- 代码如下:--相信大家肯定经常会把数据导入到数据库中,但是可能会有些记录行的所有列的数据是null,这为null的数据是我们不需要 --现在
- 本文实例为大家分享了python制作英文字典的具体代码,供大家参考,具体内容如下功能有添加单词,多次添加单词的意思,查询,退出,建立单词文件
- 我们可以通过 asyncio.wait() 函数等待异步任务完成。可以等待不同的条件,例如所有任务完成、第一个任务完成以及第一个任务因异常而
- 前言使用Python发邮件,是个简单的话题,可是如何可以优雅的轻松的群发邮件,并附加PDF附件,是很多小伙伴的日常工作,却也是很多小白需要费
- 最近项目中要用到一个正则表达式,排除某个字符串,我们知道排除单个字符串的话,可以用[^abc],这样就可以排除a或者b或者c了,但是要排除a
- json和dictpython中的dict类型要转换为json格式的数据需要用到json库:import json <json>
- 本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:这里不手动实现最小二乘,调用scipy库中实现好的相关
- Windows 8 终于发布了,虽然现在可用的只是开发者预览版,好消息是,IE 10 也随着发了,虽然现在还只有Windows 8可用。我们
- 下面展示一下非瀑布流的item布局情况,每个item的高度都是一样的,所以 他的index就是左右左右,position所对应的itemVi
- 这篇文章主要介绍了Python如何使用字符打印照片,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 假设有一个可迭代对象,现在想要对它内部的元素进行排序,我们一般会使用内置函数 sorted,举个例子:data = (3
- 本文实例为大家分享了抖音代码舞python制作代码,供大家参考,具体内容如下一、效果图二、转换代码from img import Image
- 相关验证码文章:asp制作验证码的方法 轩魂ASP中文验证码下载 先产生一个4位数的随机码源代码:ychar="0,1,2,3,4