首頁/ 汽車/ 正文

編寫檢測本機ipv6地址併發郵件的python程式

上期有提到自己用Python編寫了檢測本機ipv6的小程式,本期就詳細講解一下實現過程,大家也可以在此基礎上修改,達到自己的目的

第一步匯入需要用到的庫

import smtplibfrom email。mime。text import MIMETextimport requestsimport json

第二步,設定郵箱賬號資訊,這裡用一個txt檔案儲存,名稱定為“email_info。txt”,方便後期修改資訊。username和send_mail都是發件箱的郵箱地址,receive_mail也可以設定成發件箱地址或者其他郵箱地址。mail_host和port和發件箱服務商有關,我這裡直接以QQ為例,其他郵箱大家自己查詢研究一下。mail_subject是指郵箱的標題,大家可以自己編寫。最關鍵的password並不是指QQ郵箱密碼,而是指POP3/SMTP服務的授權碼,大家可以在QQ郵箱中設定上開通。

編寫檢測本機ipv6地址併發郵件的python程式

編寫檢測本機ipv6地址併發郵件的python程式

相關python程式碼如下

# 賬號設定f = open(‘email_info。txt’, encoding=‘utf-8’)f_text = f。readlines()f_list = []for j in f_text: f_list。append(j。split(‘=’)[1]。strip())username = f_list[0] # qq郵箱使用者名稱password = f_list[1] # qq郵箱授權碼send_mail = f_list[2] # 傳送地址,可以同上使用者名稱receive_mail = f_list[3] # 接受郵件的地址,可以用發件箱,自發自收mail_host = f_list[4] # QQ郵箱的mail hostport = int(f_list[5]) # 設定埠號mail_subject = str(f_list[6]) # 設定郵件主題f。close()

第三步,生成一個儲存每次查詢到的ip地址的檔案,名稱為“run_log。txt”,下面為示例圖

編寫檢測本機ipv6地址併發郵件的python程式

相關python程式碼如下,主要是透過

http://ipw。cn

這個網站進行查詢,下面程式碼直接請求的是網站的json地址

# 查詢上次的ip地址,作為是否要發郵件的判斷條件f1 = open(‘run_log。txt’)former_ips = f1。readlines()former_ip = former_ips[-1]f1。close()ip = ‘’for i in range(3): # 獲取IP地址 url = “https://6。ipw。cn/api/ip/myip?json” response = requests。get(url, timeout=20) if response。status_code == 200: ip = json。loads(response。content)[‘IP’] break

第四步,設定傳送郵件,相關程式碼如下

if (ip != ‘’) and (ip != former_ip): # 儲存記錄 f2 = open(‘run_log。txt’, mode=‘a+’) f2。write(‘\n’+ip) f2。close() # 內容設定 mes = MIMEText(ip, ‘plain’, ‘utf-8’) mes[‘Subject’] = mail_subject mes[‘From’] = send_mail mes[‘To’] = receive_mail # 傳送 server = smtplib。SMTP(mail_host, port) server。ehlo() server。starttls() server。login(username, password) server。sendmail(send_mail, receive_mail, mes。as_string()) server。quit()

第五步,透過python的pyinstaller將程式碼打包成一個檔案,pycharm可以在Terminal中輸入“pyinstaller -F -w ip_reporter。py”進行打包,成功後,可以在名為“dist”資料夾中找到exe檔案,如下圖。將“email_info。txt”和“run_log。txt”放在ip_reporter。exe同文件夾下,就可以雙擊執行ip_reporter了。

編寫檢測本機ipv6地址併發郵件的python程式

最後一步,設定任務計劃程式,新建txt檔案,輸入以下程式碼。最後將檔案的字尾txt修改成bat,把檔案放在第五步三個檔案同文件目錄下。並將這個資料夾放置在C盤任意目錄下。以管理員許可權執行bat檔案,最後可以看到任務計劃程式中就可以看到建立的任務計劃,這個計劃開機自啟,並每5分鐘會啟動一次,每次啟動會執行程式,如果發現ip與上次的ip發生了變化,就會自動傳送郵件。手機接收的效果如圖。

@ECHO OFFREM https://msdn。microsoft。com/zh-cn/library/windows/desktop/bb736357(v=vs。85)。aspxSET RUNCMD=“cmd /c ‘cd %~dp0 & ip_reporter。exe’”SET RUN_USER=%USERNAME%WHOAMI /GROUPS | FIND “12288” > NUL && SET RUN_USER=“SYSTEM”ECHO Create task run as %RUN_USER%schtasks /Create /SC MINUTE /MO 5 /TR %RUNCMD% /TN “IP_Reporter” /F /RU “%RUN_USER%”PAUSE

編寫檢測本機ipv6地址併發郵件的python程式

本期內容結束,本次方法只限用於ipv6,ipv4地址需修改查詢ipv4地址的網址,大家可以自行研究。歡迎留言、點贊、收藏、關注。

相關文章

頂部