Raspberry Pi IPアドレスの通知

Raspberry Piを自宅や職場で使っているといつもモニターに接続出来るわけではないので、DHCPで取得したIPアドレスを知りたくなる場合がある。
そんな時にRaspberry Piが起動時にDHCPで取得したIPアドレスをメールで携帯電話に通知してくれないかと思う。
メールの送信方法は以下のページのpythonのプログラムを参考にさせてもらいました。

まずは、作業場所を作る。

$ mkdir -p ~/src/myip
$ cd ~/src/myip
$ vi myip.py
# coding: utf-8
import smtplib
from email.MIMEText import MIMEText
from email.Utils import formatdate
import commands

from_addr = 'hogehoge@gmail.com'
to_addr = 'hogehoge@hogehoge.com'
login_user = 'hogehoge@gmail.com'
login_pass = 'hogehoge'
cmd = 'hostname -I'
msg = 'My IP Address is ' + commands.getoutput(cmd)
mail = MIMEText(msg)
mail['Subject'] = 'Raspberry Pi Notification'
mail['From'] = from_addr
mail['To'] = to_addr
mail['Date'] = formatdate()
send = smtplib.SMTP('smtp.gmail.com', 587)
send.ehlo()
send.starttls()
send.ehlo()
send.login(login_user, login_pass)
send.sendmail(from_addr, [to_addr], mail.as_string())
send.close()

完成したソースを実行して動作確認を行う。

$ python myip.py

動作を確認したら起動時のスクリプト/etc/rc.localのexit 0の前に1行追加する。

$ sudo vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

python /home/pi/src/myip/myip.py

exit 0

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です