樹莓派連線多個wifi並上報IP地址
上報IP地址 ,使用的是python語言,
#!/usr/bin/env python
import os
from email.mime.text import MIMEText
import smtplib
from email.header import Header
cmd='ifconfig'
m=os.popen(cmd)
t=m.read()
m.close()
msg=MIMEText(t,'plain','utf-8')
msg['From']='Raspberry'
msg['To']='****@qq.com'
msg['Subject']=Header('Ip Address Report','utf-8').encode()
from_add='****@163.com'
to_add='*****@qq.com'
password='******'
smtp_sever='smtp.163.com'
sever=smtplib.SMTP(smtp_sever,25)
sever.set_debuglevel(1)
sever.login(from_add,password)
sever.sendmail("from_add",[to_add],msg.as_string())
sever.quit()
程式碼
使用時出現兩個問題,
第一:登入失敗。原因是因為在登入的時候需要使用的是第三方客戶端,因此,在郵箱官網上設定第三方客戶端登入密碼即可,password一行也是第三方客戶端密碼。
第二,出現了554 DT:SUM 信封發件人和信頭髮件人不匹配;修改了msg[to]一行改為我的郵件地址之後,傳送成功了。
設定開機啟動。
sudo nano /etc/rc.local
開啟後在exit 0前面兩行加入程式碼
sleep 10
sudo python /home/pi/IPsent.py &
第一行意思是休息十秒。系統啟動後wifi還沒有連線上去,如果執行指令碼是傳送不出去的,因此休眠十秒等待wifi連線。
第二行則是執行該指令碼。 sudo 許可權,絕對路徑,絕對路徑後面是“空格&”
如果你的命令需要長時間執行(例如死迴圈)或者執行後不能退出,那麼你必須確保在命令的最後新增“&”符號讓命令執行在其後臺。這個“&”符號允許命令執行在一個指定的程序中,然後繼續執行啟動程序。另外,確保檔名使用絕對路徑,而不是相對於你的home目錄的相對路徑。例如:使用/home/pi/myscript.py而不是用myscript.py。