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

首頁 > 開發 > Python > 正文

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

2024-09-09 19:02:28
字體:
來源:轉載
供稿:網友

需求分析:

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 
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天峨县| 宣恩县| 呼和浩特市| 合肥市| 忻城县| 新昌县| 马龙县| 四川省| 克什克腾旗| 若羌县| 五大连池市| 盘锦市| 姚安县| 日喀则市| 常州市| 仙游县| 武城县| 临颍县| 百色市| 柘荣县| 锡林郭勒盟| 扶绥县| 博客| 寻乌县| 三台县| 元氏县| 正阳县| 南溪县| 汶川县| 沐川县| 苍梧县| 白水县| 固始县| 封丘县| 施秉县| 松原市| 武隆县| 海城市| 蓝山县| 八宿县| 女性|