LoginSignup
11
15

More than 5 years have passed since last update.

Raspberry PiのIPアドレスを起動時に送るスクリプト

Last updated at Posted at 2016-10-23

地味に便利!Raspberry Piが起動したらIPアドレスを通知するチャットボットを作る
という記事があって、かなり便利なんだけどNodeを使うのはめんどうなのとHipChatじゃないところへ送りたいのでちょっと改造してみました。

作るものはRaspberry Pi起動時に実行するシェルスクリプトとIPアドレス受け取るサーバー用のPHP
今回はPHPにしたけど、たぶんSlackとかのwebhookに適当に変えてもできるはず

IP送信シェルスクリプト

sendip.sh
res=`ifconfig`
url="http://example.com/raspberrypi.php"
curl -X POST -d "text=${res}" ${url}

ifconfigの内容をcurlでphpのサーバーへpostしているだけ。

受け取るPHP

raspberrypi.php
<?php
$filename = "rsip.txt";
if (isset($_POST["text"])) {
  $res = $_POST["text"];
  echo file_put_contents($filename, date(DATE_ATOM).'<br>'.$res);
} else {
  echo '<pre>';
  echo file_get_contents($filename);
  echo '</pre>';
}

こっちも単純で、postで受け取った内容をip.txtというファイル名に保存して、
ブラウザで表示するときは、このファイルの中身を表示させるかたち

起動時に実行するように仕組む

そして起動させる毎にこのshellを実行させるように/etc/rc.localに書き加える

/etc/rc.local
sh sendip.sh

できあがり

これでRaspberry PiのIPアドレスを起動時送ってくれる。ディスプレイとかキーボードとか繋ぐ必要なし!

2017-07-22T19:11:17+09:00
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx
          inet addr:192.168.11.8  Bcast:192.168.11.8  Mask:255.255.255.0
          inet6 addr: xxxx::xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1818525245 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30853428 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:126241847614 (117.5 GiB)  TX bytes:11555247080 (10.7 GiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:11135533 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11135533 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7879172002 (7.3 GiB)  TX bytes:7879172002 (7.3 GiB)

できたものはこんな感じ
ちょっと見にくいが、192.168.とかページ内検索で引っ掛ければすぐ出てくるのでとりあえずは問題ない。

まあPHP側で抽出するように書き加えれば良い気がする、面倒だからやらないけど。。。

11
15
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
11
15