Global IPをPythonでLine通知するものを作ってみよう リモートデスクトップ用途に

スポンサーリンク

今回はpythonの実用編に入ります。
小生はWindows謹製のRemoteDesktopを使用しています。
親機のPCのポート開放をして、Global IPを入力して出先でも親機のPCが操作できるようにしています。最近ではiPadが公式にマウスに対応したため、iPad Pro + 純正キーボード + 無線マウスの組み合わせが非常に使いやすいです。

軽くてどこでも綺麗な画面で編集ができるようになり、モバイルPC自体が不要な時代になるとは恐ろしいものです。

しかしながら、このやり方の欠点としては
Global IPが時々変更となり、IPをその都度変更しなければならない点です。

セキュリティ上大事な策ではありますが、毎回親機からGlobal IPを検索してRemote Desktopの設定に登録するのは非常に面倒です。

今回は、前回のLine通知のプログラムを応用して、一定時間おきにLineにGlobal IPを通知するPythonプログラムを作成してみましょう。

〜〜〜前回の内容はこちらです。〜〜〜〜

PythonとLineを連携するぞ(IFTTTを使ってみる) その1

・PythonとLineを連携するぞ(IFTTTを使ってみる) その2

まず、Global IPをPythonで取得する構文は??

import requests
res = requests.get(‘http://inet-ip.info/ip’)
v1 = str(res.text) # gloval ip

requestsという機能をimportします。
requests.get(‘hogehoge’)で指定URLのデータを拾います。
このinet-ipページに接続するとGlobal IPを表示するサイトなんでしょうね。
なので、resのいう変数にその内容を取り込みます。
そして、str(res.text)の通り、resの内容をtext文だけにして、カッコにて文字列型に変換すれば、v1の変数にglobal IPが表示されます。

Global IPを表示するサイトにアクセスして値を拾うという方法っすね。

実際にLine通知連携のプログラムを組んでみます

では、実際にプログラムを組んでみましょう。
前回のLINE連携で使用した、Line通知をするプログラムにあたる「ift.py」と同じフォルダにpythonプログラムを作成しましょう。

今回は、Lineとの連携でift.pyも使用しますが、
1日ごとに通知する繰り返しの細工もしてみましょう。

〜プログラムはこちら〜
import time
import ift
import requests
import datetime

ts = “ipsend”
v1 = “さいたま”
v2 = “areだ”

num = 0

print(“//****************************************//”)
print(“//GlobalIP情報を送信する2020/8/12//”)
print(“//***************************************//”)

num = 0
while num < 2:

res = requests.get('http://inet-ip.info/ip')
v1 = str(res.text)  # gloval ip
v2 = "Nothing"
# 情報の送信
ift.ifttt_webhook(ts, v1, v2)

print(str(datetime.datetime.now()) + ":グローバルIPをLineで通知しました。")
time.sleep(86400)  # 1day

〜〜〜〜〜

ファイル名はipsend.pyとして作成します。

機能を取り込むimportの部分としては
import time =時間計測に使用する
import ift=Line連携
import requests=globalIPページにアクセスして取り込む
import datetime=現在時刻を取り込む

ts,v1,v2はift.pyのところを見てください。

printに色々入れていますが、print()をつけると実行時に文字を表示してくれます。

numという変数を0としておきましょう。
while num < 2ということで、2になるまで繰り返すということで今回はnumという数は0のままなので永遠に繰り返しを行います。

request.getでGlobal IPを取得して、v1の変数に記録します。
そして、v1のGlobal IP情報をLine通知のプログラムに飛ばし、ift.pyを実行します。

それが終わったらprint()の中は
datetime.date time.now()で今の時間
str()で文字列型に変換する機能をしてくれます。
今処理しましたというのを表示するんですね。

最後にtime.sleep()を入れると、秒数だけ待つ処理になります。
今回は1日ごとに実行したいのでsleep(86400)と86400秒=1日と入れましょう。

出来上がりましたら、
エクスプローラーで保存しているフォルダを開き、SHIFT押しながら右クリックで「PowerShellでこのディレクトリから実行」を押す。

コマンドプロンプト上で「python3 ipsend.py」を入力して実行すればOKです。


起動すると通知しましたので表示が出て。


Line上にグローバルIPが出ています。

このIPをRemote Desktopの接続先にすれば、これで出来上がりです!

おしまい!

特集ページ:Pythonを学んで活用してみよう

コメント

タイトルとURLをコピーしました