Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата IvanXXL:
ip-адрес интерфейса »
Первый из IP-адресов, на WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim objDictionary


Set objDictionary = WScript.CreateObject("Scripting.Dictionary")

With objDictionary
	.Add "192.168.0.10",  ""
	.Add "192.168.0.100", ""
End With

WScript.Echo FindIPAddress()

objDictionary.RemoveAll
Set objDictionary = Nothing

WScript.Quit 0
'=============================================================================

'=============================================================================
Function FindIPAddress()
	Dim objSWbemObjectEx
	
	Dim strDNSServer
	Dim strAddress
	
	For Each objSWbemObjectEx In WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
		With objSWbemObjectEx
			If Not IsNull(.DNSServerSearchOrder) Then
				For Each strDNSServer In .DNSServerSearchOrder
					If objDictionary.Exists(strDNSServer) Then
						If Not IsNull(.IPAddress) Then
							For Each strAddress In .IPAddress
								FindIPAddress = strAddress
								
								Exit Function
							Next
						End If
					End If
				Next
			End If
		End With
	Next
End Function
'=============================================================================

Примерный метод использования в пакетном файле:
Скрытый текст
Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=" %%i in (
	`cscript.exe //nologo "C:\Песочница\066\FindIPAddress.vbs"`
) do set sIPAddress=%%~i


if defined sIPAddress (
	echo [%sIPAddress%].
) else (
	echo Can't determine IP-address.
	exit /b 1
)

endlocal
exit /b 0
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:32, 06-02-2015 | #2