2016年09月30日

2016-09-30 自宅のIPをメールで送信 PowerShellを利用

2016-09-30 自宅のIPをメールで送信 PowerShellを利用

■追記 2018-10-16 メールアドレスに差出人を追加
迷惑メール対策で差出人を追加する場合の方法です。
$from = "name@provider.com"
$to = "name@provider.com"

$from = "差出人<name@provider.com>"
$to = "<name@provider.com>"
に変更します。

■追記 2017-07-22 Windows10 のアップデートで起動できなくなった対応
上記のようにアップデート後にメールが送れなくなりました。
URLからのレスポンスの一部が取得できないようで、以下に変更しました。

$url = "http://www.axisnetworks.biz/tools/gip/"

$url = "http://www.cman.jp/network/support/go_access.cgi"

if ($line -like '*<p class="style4" name="ip">*') {

if ($line -like '*<div class="outIp">*') {

この変更で取得できるようになりました。

以前紹介したIPカメラですが、自宅のルータのIPが変更になると、IPカメラのアプリの設定を変更する必要があります。
これまではIPが変わった時には、SplashTopを使用して、自宅の常時稼働のPCにアクセスして確かめていました。
ちょっと面倒なので、ちょっと考えてほかの方法に移行する事にしました。同じような事を考えている人がいて、WEBを参考にして作成しました。ただ今回が初めてのPowerShellだったので、試行錯誤の連続で、簡単にメールを送れませんでした。参考にしたサイトは下記になります。
http://rtaki.blogspot.jp/2010/10/ip.html

動作(Powershellのスクリプト)+環境(OSはWindows10のProfesional)
1:グローバルIPを返してくれるサイトにアクセスします。サイトは以下を使用させて頂いています。
自分のグローバルIPアドレス確認ツール、「IP君」
http://www.axisnetworks.biz/tools/gip/
2:得られた情報から、自分の環境のグローバルIPを検索する。
3:前回の「get_ip.txt」を読み込み、今回のIPと異なっていたら、メールで新しいIPを送り、新しいIPを「get_ip.txt」としてファイルに保存する。
e:\sharing\get_ip.txt
get_ip.txt.web1.txt
================================================
111.111.111.111
================================================
4:ログファイル「get_ip_log.txt」を作成します(毎回、上書きで作成)。ログを追加で作成したい場合は、ファイルの有り無しで判定するように変更して下さい。
e:\sharing\get_ip_log.txt
get_ip_log.txt.web1.txt
================================================
処理開始: 2016-10-02 06:00:19
IPアドレスが変更: <記録なし> -> 111.111.111.111
ファイル更新: E:\sharing\get_ip.txt
メール送信: name@provider.com
処理完了: 2016-10-02 06:00:22
================================================

実行
1:タスクのスケジュール(毎日の朝6時に実行)で、バッチファイルを起動して、この中で、PowerShellのスクリプトを実行させる。

作成
1:任意のフォルダーにバッチファイル(send_mail.bat)を作成します。自分の場合は以下のファイルとしました。
e:\sharing\send_mail.bat
send_mail.bat.web.txt
2:スクリプトのファイル(get_ip.ps1)を作成します。バッチファイルと同じフォルダーに作成します。
e:\sharing\get_ip.ps1
get_ip.ps1.web3.txt
3:get_ip.ps1のメールのサーバ名、アカウント、パスワードを各自の環境に合わせて変更します。
4:「コントロールパネル」の「管理ツール」の「タスクスケジュール」でタスクを作成します。
「操作」は「プログラムの開始」で実行させるプログラムは上記の「e:\sharing\send_mail.bat」を指定します。


posted by bonworld at 13:12| Comment(0) | TrackBack(0) | Computer