①A-PCからB-PCに対して、リモート接続をする場合、
B-PCのアドレスが特定できなければならない。
②しかし、B-PCがローカルネットワークの中にあり、
ルーティング設定ができない場合は外部からの接続はできない。
③ただし、A-PCが接続されるB-PCから参照できる場合、
B-PCから、A-PCに対して接続依頼をする事で、
A-PCからB-PCをリモートコントロールすることが可能になる。
VNCの場合、UltraVNC ビューアを待ち受けモードで起動することができる。
(vncviewer.exe -listen)
これに対しB-PCから接続を要求すると
(winvnc.exe -connect abc.com:5800)
A-PCからVNCリモートコントロールが可能になる。
つまり、B-PCから何かのトリガーにより接続依頼ができれば、
A-PCからの任意の接続が可能になる。
そこで、
B-PCからあるHPサイトの定期監視を行い、
そこのステータスがONになった場合に、
A-PCに対して接続依頼を行う仕組みを考える。
"######################################################################
"#
"# ホームページデータを取得し、VNC接続依頼を行う
"#
"######################################################################
"オブジェクト変数に参照
Set oHttp = CreateObject(""MSXML2.XMLHTTP"")
If oHttp Is Nothing Then
MsgBox ""XMLHTTP オブジェクトを作成できませんでした。"", vbCritical
End If
"URLを開く
oHttp.Open ""GET"",""http://abc.com/vncchk.txt"",False
oHttp.Send
"HTML ソースを取得
strRetVal = oHttp.responseText
"HTML ソース検査
If strRetVal = ""OK"" Then
"VNCバッチを起動
Set ws = CreateObject(""Wscript.Shell"")
" ws.run """"""C:\Program Files\UltraVNC\winvnc.exe -connect abc.com:5800""""""
End If
"オブジェクト変数の参照を解放
Set oHttp = Nothing
"######################################################################