国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python實現遠程通過網絡郵件控制計算機重啟或關機

2020-02-22 23:16:54
字體:
來源:轉載
供稿:網友

需求分析:

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             
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰兴市| 成都市| 涿鹿县| 莱芜市| 边坝县| 石嘴山市| 龙海市| 抚远县| 淳化县| 台东县| 佛冈县| 舟曲县| 岳阳县| 苍山县| 阿拉善左旗| 稻城县| 墨竹工卡县| 陆川县| 眉山市| 金乡县| 陵川县| 深圳市| 平江县| 金平| 门头沟区| 威远县| 张家界市| 海口市| 清镇市| 施秉县| 崇仁县| 温宿县| 溧水县| 蒙山县| 河曲县| 桑植县| 察哈| 淮南市| 双流县| 固安县| 榆树市|