それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

グローバルIPを定期的に監視する

自宅のグローバルIPが行方不明になる。

さいきん、eo光のサービスがちょっとおかしいのと、暑くてルーターがよくハングアップするので、グローバルIPが行方不明になることが多い。

ルーターは自動再起動するはずなんだけど、自動再起動もおかしい・・・

とりあえず、しばらく、外部のレンタルサーバに、自宅のグローバルIPをログ取ることにした。

最新1件のグローバルIPをログ。

curl でアクセスすると更新が可能。

curl -d update=1 http://example.com/check_global.php

crontab につっこむ

*/3 * * * *  curl -d update=1 http://example.com/check_global.php 2>&1 >/dev/null  

サーバー側においた php ファイルのサンプル

<?php


///現在のIPアドレスを保存する
$f_name = "current_ip.log";



if( $_SERVER["REQUEST_METHOD"] == "GET" ){

  $json_data = file_get_contents($f_name);
  $data = json_decode($json_data, ture);
  $str = <<<EOS
  <h1>現在のIPアドレス</h1>
  <dl>
    <dt>最終更新</dt>
    <dd>${data["last_modified"]}</dd>
    <dt>アクセス元グローバルIP</dt>
    <dd>${data["global_ip"]}</dd>
  </dl>
EOS;
  echo $str;
  exit;
}

if( $_SERVER["REQUEST_METHOD"] == "POST" ){
  
  $obj = [
  "last_modified" => date("Y-m-d H:i:s"),
  "global_ip" => $_SERVER["REMOTE_ADDR"],
  ];

  $json_data = json_encode($obj);

  file_put_contents($f_name, $json_data);

  header("Content-type : text/json");
  echo $json_data;
}

あまりにも簡単な事なので、ブログに書くのもバカバカしいが、自宅の全サーバーにアクセス出来ないので、暇すぎて。。。