◆ [VBScript] 指定したIPアドレスが有効かどうか調べる
どーもボキです。

VBSで指定したIPアドレスが有効かどうか調べる関数。

Target には、IPアドレスの文字列を渡す。"192.168.11.1" とか。
IPアドレスが有効(Pingが通る)なら、True を返す。


【WindowsXP用】
 *Windows2000では、このコマンドは使えない。
Function myPing_XP(ByVal Target)
Set objWMIService = GetObject("winmgmts:\\.")
Set PingSet = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address = '"&Target&"'")
For Each Ping In PingSet
Select Case Ping.StatusCode
Case 0
r = True
'Case 11010
'MsgBox "Request Timed Out"

Case Else
r = False
End Select
Next


myPing_XP = r
End Function


【Windows2000用】
 コマンドプロンプトでPingを実行し、その結果文字列を受け取り処理する。
Function myPing_2k(ByVal Target)
Set objWS = CreateObject("WScript.Shell")
Set objExecObject = objWS.Exec("%comspec% /c ping -n 3 -w 1000 " & Target)
Do While Not objExecObject.StdOut.AtEndOfStream
strText = objExecObject.StdOut.ReadAll()
If Instr(strText, "TTL") > 0 Then
r = True
Else

r = False
End If
Loop


myPing_2k = r
End Function


WinXP用は、Vistaも使えると思う。
そんで、Win2k用は、WinME や Win98 もいけると思う。 でもいけるかどうかは未確認。


参考
 Hey, Scripting Guy! > ping を使用するスクリプトを Windows 2000 コンピュータで実行できないのはなぜですか

VBSって面白い。
[PR]
by yozda | 2009-02-17 20:00 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/7967583
トラックバックする(会員専用) [ヘルプ]
<< [日記] 09.02.17 晄... [トラブル] 特定のページだけ... >>