您好,登錄后才能下訂單哦!
小編給大家分享一下python怎么實現(xiàn)自動獲取IP并發(fā)送到郵箱,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
樹莓派沒有顯示器,而不想設(shè)置固定IP,因為要隨身攜帶外出,每個網(wǎng)絡(luò)環(huán)境可能網(wǎng)段不一樣。因此想用python寫個腳本,讓樹莓派開機后自動獲取本機ip,并且自動發(fā)送到我指定郵箱。
1.獲取所有連接的網(wǎng)絡(luò)接口,比如有線、wifi等接口
def get_ip_address(): #先獲取所有網(wǎng)絡(luò)接口 SIOCGIFCONF = 0x8912 SIOCGIFADDR = 0x8915 BYTES = 4096 sck = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) names = array.array('B',b'\0' * BYTES) bytelen = struct.unpack('iL', fcntl.ioctl(sck.fileno(), SIOCGIFCONF, struct.pack('iL', BYTES, names.buffer_info()[0])))[0] namestr = names.tostring() ifaces = [namestr[i:i+32].split('\0', 1)[0] for i in range(0, bytelen, 32)] #再獲取每個接口的IP地址 iplist = [] for ifname in ifaces: ip = socket.inet_ntoa(fcntl.ioctl(sck.fileno(),SIOCGIFADDR,struct.pack('256s',ifname[:15]))[20:24]) iplist.append(ifname+':'+ip) return iplist
2.把IP地址發(fā)送到指定郵箱
def ip_send_mail(iptxt): #設(shè)置收件郵箱 toaddrs = 'to@mail.com' #設(shè)置發(fā)送郵箱 fromaddr = 'send@mail.com' #設(shè)置發(fā)送郵箱的賬號密碼 username = 'your_sendmail@mail.com' password = 'your_pass' #設(shè)置SMTP服務(wù)器、端口,根據(jù)你的郵箱設(shè)置, server = smtplib.SMTP('smtp.mail.com:25') #設(shè)置郵件正文,get_ip_address()返回的是list,要轉(zhuǎn)換成str ip = '\r\n'.join(iptxt) #設(shè)置郵件標(biāo)題和正文 msg = MIMEText(ip,'plain', 'utf-8') msg['Subject'] = 'IP For RaspberryPi' msg['From'] = fromaddr msg['To'] = toaddrs #啟動SMTP發(fā)送郵件 server.ehlo() server.starttls() server.login(username,password) server.sendmail(fromaddr, toaddrs, msg.as_string()) server.quit()
3.最后調(diào)用以上函數(shù)運行即可
if __name__ == '__main__': #獲取IP iptxt = get_ip_address() #將IP存入文件,如果直接發(fā)送郵件,這步可以省略。 ip_save_file(iptxt) #將IP地址發(fā)送到指定郵箱 ip_send_mail(iptxt)
4.設(shè)置開機運行
把以上代碼都放入一個文件,把文件放到樹莓派卡里面,如: /home/pi/get_ip_address.py
給python腳本可執(zhí)行權(quán)限
sudo chmod +x get_ip_address.py
設(shè)置系統(tǒng)啟動時運行
sudo vi /etc/profile
編輯profile文件,在profile最后面,fi之前添加如下:
python /home/pi/get_ip_address.py
以上是“python怎么實現(xiàn)自動獲取IP并發(fā)送到郵箱”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。