Global IPを定期確認する

Requirement

  • OS: Mac, Windows

  • python3

    • datetime
    • requests
    • platform
    • os (Mac)
    • plyer (Windows)

 

Tested Environment

  • Mac

    • macOS Big Sur 11.5.2 on M1 MacBook Air 2020
  • Windows

    • Windows 10 pro (Insider program, 21354.1) on Parallels on M1 MacBook Air 2020
    • Windows 10 pro on Desktop PC

 

Code

global_ip_checker.py

2021/10/16 追記

某場所からアクセスした際に, グローバルIPの値が謎の文字列になってしまうことがあったため, グローバルIPの取得先を変更した

 

 

Usage

CUIウィンドウ内の出力

出力あり

Command
Result
Mac
Windows

出力なし

Command

Result

出力なし

 

共通の結果

  • global-ip-log.txt : Global IPの履歴
  • global-ip.txt: Global IPの1回分の記録. 変更があったかの判断材料

 

Global IPが変わると下図のようなnotificationが出る

MacWindows
macwin

 

定期実行化

Mac

Automatorの方法もあるが, 毎日1回が最小間隔なのでやめた. cronでの実装にした.

Shell

global_ip_checker.sh

python3の記述を絶対パスつきにしないとpython2系で実行されてしまうので注意

例: python3 global_ip_checker.py だとcronからの実行時には python global_ip_checker.pyとして処理されてしまう

 

ファイル配置

実行前
実行後

 

cron

でcronを開く. すると, cronの設定がviで開かれる. i を押してinsert modeに入った後, 下記のように設定し, esc を押してから :wq を入力し, Enter を押すと保存され, 設定完了

  • 1時間ごとに実行
  • 2分ごとに実行

 

以上で定期実行されるはず.

場合によっては...

ポップアップ

crontabを:wq で閉じた際に, 下図のポップアップが出たときはOKを押す. 通常, crontabの設定を変更した際に出てくる.

cron-after

 

terminalにYou have new mail.というメッセージが出る

Macターミナル - You have mail と表示された場合の対処法 | PC設定のカルマ

と打って, mail閲覧のモードに入ったら,

  • 1, 2 等を入力して Enterを押せば, mailの中身が見れる.
  • q を入力して Enterを押せば, mail閲覧モードから通常のterminalに戻る

 

cronが実行されない

cronにアクセス権がないことが原因かも.

crontabでシェルスクリプトが実行できないときの対処法。macのシステム環境設定が必要です。 が参考になる.

  • System PreferencesSecurity & Privacy を開く
  • Full Disk Access+ を押し /usr/sbin/cron を追加
  • その cron にチェックが入れる

cron-access

 

参照