Raspberry Piで起動時にローカルIPアドレスをSlackに投稿する
【前提】
フロントと玄関にラズパイ+C270でMjpg-streamerで監視カメラ作って仕込んでるんですが、
ルーターの設定が変えれないため静的にIPアドレス割り振れず、見失うと毎回ミニモニターを繋いでIPアドレスを確認していた。
【正直】
めちゃくちゃ面倒くさい+RasPiをもう一度再起動しなくてはいけないのでどうにかならんか。
【解法】
起動時に自身のIPアドレスをSlackに投稿すればいいんでねーの?
つかう技術は2つ
でipアドレスを取得してSlackに投稿する
SlackにはSlackwebを使う
ここからソース
import slackweb import socket slack = slackweb.Slack(url = "【slackで設定したWebhook URLのアドレス】") ip = socket.gethostbyname(socket.gethostname()) slack.notify(text="IP:%s" % ip)
基本は5行だった。
これではあんまりかと思ったので体裁を整える。
import slackweb import socket import time def post_to_slack(): try: post() except: time.sleep(10) post_to_slack() def post(): slack = slackweb.Slack(url = "【slackで設定したWebhook URLのアドレス】") ip = socket.gethostbyname(socket.gethostname()) slack.notify(text="IP:%s" % ip) if __name__ == '__main__': post_to_slack()
繋がってなかったらどっかでエラー出るでしょうという精神。
2017/11/18追記
使おうと思ってラズパイに移植したらローカルループバックアドレス("127.0.0.1")になってしまった。 windows10上はうまく行っていたのにー。
てことでラズパイ用に若干変更
pip install ipget
でipgetモジュール導入した後に
import slackweb import ipget import time def post_to_slack(): try: post() except: time.sleep(10) post_to_slack() def post(): slack = slackweb.Slack(url = "【slackで設定したWebhook URLのアドレス】") ip = ipget.ipget() ipaddress = ip.ipaddr("eth0") slack.notify(text="hello,i am kitchen RPi and my IP is :%s" % ipaddress) if __name__ == '__main__': post_to_slack()
LOGICOOL ウェブカム HD画質 120万画素 C270
- 出版社/メーカー: ロジクール
- 発売日: 2010/08/20
- メディア: Personal Computers
- 購入: 21人 クリック: 267回
- この商品を含むブログ (20件) を見る