IPアドレスからホスト名を取得する(nslookup)

IPアドレスからホスト名を取得します。取得には、コマンドプロンプトを起動し、nslookupコマンドを発行。結果をクリップボードにコピーし、そこから名前:を検索します。

' ------------------------------------------------------------
' 説明:IPアドレスからホスト名を取得する
' 引数:1:ホスト名を取得したいIPアドレス
' 戻値:ホスト名
' 補足:-
' ------------------------------------------------------------
Function GetHostname(addr As String)
	Dim data As Variant
	Dim result As Variant

	' コマンドプロンプトを実行しクリップボードに取得する
	CreateObject("WScript.Shell").Run "%ComSpec% /c nslookup " & addr & "|clip", 0, True

	' 取得した情報を配列に格納する
	data = Split(GetObject("\", "htmlfile").ParentWindow.ClipboardData.GetData("text"), vbCrLf)

	' 名前: を含む情報をホスト名とする
	For Each result In data
		If result Like "*名前:*" Then
			GetHostname = Trim(Replace(result, "名前:", ""))
			Exit Function
		End If
	Next
End Function

【補足】
アンチウィルスの種類によっては、スクリプト実行時に処理をブロックすることがあります。
Norton360 アンチウィルスの例は、次を参照してください。
スクリプト実行時の確認(アンチウィルス)

コメント