2011年3月2日水曜日

DOS batでIPアドレスの変更を通知する。

DOSのBatにてIPアドレス変更を通知する。
DHCPなどでIPが変更になる端末に仕込んでおくと、メールで変更を知ることができる。

別途必要なもの
外部プログラム smail.exe
 http://dip.picolix.jp/disp2.html

特に変わったことはしておらず、compでファイルを比較して、先に取得したアドレスと、
今回取得したアドレスの相違を見ている。
ERRORLEVELで0ならば、相違なし、1ならば相違ありで
相違ありの場合にメールプログラムに結果を渡している。

外部SMTPサーバにsmailが使えない場合は、Radish等でローカルにメールサーバを立てる。
あとは、タスクスケジューラーで1時間毎ぐらいに起動するか、
ネットワークの状態に変化があった場合に起動するようにするか。。(Linuxの方法は知っているが、Windowsはわからない。。)

------------------------------------------------------------------------
@echo off

REM 時刻取得
echo %date:~0,4%%date:~5,2%%date:~8,2%
set time1=%time: =0%
echo %time1:~0,2%%time1:~3,2%
set start_DT=%date:~0,4%%date:~5,2%%date:~8,2%_%time1:~0,2%%time1:~3,2%
echo %start_DT%


REM IPアドレスの取得
ipconfig | find "  IPv4" > ip.txt

REM 条件判断 ファイルの有無
:P1
if exist ip.txt (GOTO P2) ELSE (GOTO P3)

REM ファイルを比較する。
:P2

echo n | comp ip.txt ip2.txt > ip-kekka.txt
find "ファイルに違いはありません" ip-kekka.txt
IF %ERRORLEVEL% EQU 0 (Goto end) ELSE (Goto P4)

:P3
echo "ファイルがありません。"
goto end

:P4
REM Mail
smail -hlocalhost -f"IP通知" -s%start_DT%_IP通知 -Fip.txt kxxxx@hogehoge.com

:end
del ip2.txt
del ip-kekka.txt
ren ip.txt ip2.txt
exit
------------------------------------------------------------------------


0 件のコメント:

GoogleAD