• <table id="9gxyf"><label id="9gxyf"></label></table>
  • <tt id="9gxyf"><optgroup id="9gxyf"></optgroup></tt>
  • <tt id="9gxyf"></tt>
    溫馨提示×

    您好,登錄后才能下訂單哦!

    密碼登錄×
    登錄注冊(cè)×
    其他方式登錄
    點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

    如何通過樹莓派進(jìn)行公網(wǎng)IP變動(dòng)后自動(dòng)郵件通知python

    發(fā)布時(shí)間:2021-10-14 10:39:54 來源:億速云 閱讀:196 作者:柒染 欄目:編程語言

    如何通過樹莓派進(jìn)行公網(wǎng)IP變動(dòng)后自動(dòng)郵件通知python,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

    1. 獲取公網(wǎng)IP

    class Getmyip:
    	def getip(self):
    		try:
    			myip = self.visit("http://www.ip138.com/ip2city.asp")
    		except Exception, e1: 
    			logging.warning(str(e1))
    			
    			try:
    				myip = self.visit("http://www.whereismyip.com")
    			except Exception, e2: 
    				logging.warning(str(e2))
    				myip = "So sorry!!!"
    		return myip
    		
    	def visit(self,url):
    		opener = urllib2.urlopen(url)
    #		if url == opener.geturl():
    		mystr = opener.read()
    		return re.search('\d+\.\d+\.\d+\.\d+',mystr).group(0)

    2. 發(fā)郵件

    def send_mail(to_list,sub,content):  
    	mail_host="smtp.163.com"  #設(shè)置服務(wù)器
    	mail_user="aaa"    #用戶名
    	mail_pass="aaa"   #口令 
    	mail_postfix="163.com"  #發(fā)件箱的后綴
    	
    	me="hello"+"<"+mail_user+"@"+mail_postfix + ">"
    	msg = MIMEText(content,_subtype='plain',_charset='utf8')  
    	msg['Subject'] = sub  
    	msg['From'] = me  
    	msg['To'] = ";".join(to_list)  
    	try:  
    		server = smtplib.SMTP()  
    		server.connect(mail_host)  
    		server.login(mail_user,mail_pass)  
    		server.sendmail(me, to_list, msg.as_string())  
    		server.close()  
    		return True  
    	except Exception, e:  
    		print str(e)  
    		return False

    3. 每半小時(shí)檢查一次

    if __name__ == '__main__':  
    	
    	strLastIP = ''
    	logging.info('Starting message')
    	while True:
    		logging.info('time.sleep begin')
    		time.sleep(1600)
    		logging.info('time.sleep end')
    		getmyip = Getmyip()
    		
    		logging.info('Getmyip')
    		localip = getmyip.getip()
    		logging.info('getmyip.getip =' + localip)
    		
    		if localip == 'So sorry!!!' or localip == '':
    			continue
    		
     
    		
    		if  localip == strLastIP :
    			logging.info("The same ip : " + localip)
    		else:
    			
    			logging.info( "localip ok : " + localip)  
    
    		
    			if send_mail(mailto_list,"IP " + localip, localip):  
    				strLastIP = localip
    				logging.info( "send ok")  
    			else:  
    				logging.warning( "send err" )

    4. 開機(jī)啟動(dòng)

    編輯  /etc/init.d/rc.local 

    python /usr/local/work/sendmyip.py &

    看完上述內(nèi)容,你們掌握如何通過樹莓派進(jìn)行公網(wǎng)IP變動(dòng)后自動(dòng)郵件通知python的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI