LoginSignup
0
0

More than 3 years have passed since last update.

Lubuntuで自宅IPの変更通知

Last updated at Posted at 2020-05-06

目的

  1. 自宅のグローバルIPアドレスが変更されたら通知
  2. 通知方法はEメール
  3. 送信サーバーはGmailを使用

環境

  • Lubuntu 18.04

作業内容

Global IPを取得する

上記サイトより、Global IPの取得方(といううか、ほとんど全部)のお知恵を拝借しました。ありがとうございます。
シェルマグさんではLINEを使ってますが、私はメールがいいので、その辺は別からお勉強させていただきました。
よって、

gip_filename="/home/USER/ip/global_ipaddress"
gip_log="/home/USER/ip/logs/global_ip.log"
current_ip=$(curl -s ifconfig.io)
#global_ip="hoge" # For Debug
global_ip=$(cat ${gip_filename})

if [ ${current_ip} != ${global_ip} ]; then
    datetime=$(date "+%Y%m%d%H%M%S")
    echo ${current_ip} > ${gip_filename}
    echo "${datetime} : ${current_ip}" >> ${global_ip.log}

    #メール送信
fi

という形になりました。
後々いつIPが変わったか分かるように、比較用ファイルの他にlogファイルにappendするようにしました。

メールで通知する

どうやって送るか -> ssmtp

を参考にさせて頂きました。詳細は↑をご覧ください。掻い摘んでちょっとだけ

sudo apt-get -y install ssmtp
sudo vi /etc/ssmtp/ssmtp.conf

以下を追記

#/etc/ssmtp/ssmtp.conf

mailhub=smtp.gmail.com:587
AuthUser=アカウント@gmail.com
AuthPass=パスワード
UseSTARTTLS=YES

その後は、Googleアカウントから 安全性の低いアプリのアクセスをオンにする で準備完了

スクリプトにメール送信を追加

if文内の #メール送信 以下に追記

#/home/USER/ip/ip_notifyer.sh

    filename="/home/USER/ip/logs/mail_${datetime}.txt"
    touch ${filename}

    echo "From: アカウント@gmail.com" > ${filename}
    echo "To: 宛先メアド" >> ${filename}
    echo "Subject: Detected IP Address Change" >> ${filename}
    echo "" >> ${filename}
    echo "Detected IP address change. The new IP address is ${current_ip}" >> ${filename}

    /usr/sbin/sendmail -i -t < ${filename}

これでIPが変わった時にメールが送信されます。
こちらも送った内容を保存してます。そのうち止めるかもだけど。

自動実行

監視してもらうために、作ったスクリプトをcron実行します。

crontab -e

#以下追記
*/10 * * * * /bin/bash /home/USER/ip/ip_notifyer,sh

これで10分毎にIPチェックしてくれますね。
IP変わらないから、/home/USER/ip/global_ipaddressの中身をいじって待機。無事に変更が検出されてメールが飛んできました。

結果

とりあえず、これでIPの変更がどこでも分かるようになりました。
RDPとかで家PCにアクセスしたい人はいいのではないでしょうか。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0