Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти ip-адрес по условиям среди нескольких интерфейсов

Ответить
Настройки темы
CMD/BAT - [решено] Найти ip-адрес по условиям среди нескольких интерфейсов

Новый участник


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

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


Прошу помощи в решении следующей задачи:
Есть некоторое количество компьютеров с количеством активных сетевых интерфейсов от 3 до 5 на ОС WinXP, Win7 и Win81. При локальном запуске скрипта в переменную должен передаваться ip-адрес интерфейса, на котором в качестве одного из DNS-серверов прописан хотя бы один из этих адресов: 192.168.0.10, 192.168.0.100. Активный интерфейс с такими DNS-серверами может быть только один.

Отправлено: 08:19, 06-02-2015

 

Ветеран


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

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


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

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


Спасибо за рабочее решение.

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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти ip-адрес по условиям среди нескольких интерфейсов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Определить IP адрес по NetBIOS-имени. TheSima Microsoft Windows 7 11 05-09-2013 19:19
Proxy/NAT - [решено] Подменить свой ip адрес на другой ip адрес (выдать свою организацию за другую) masyaka Сетевые технологии 5 25-03-2011 08:42
FreeBSD - [решено] раздача сетевых ресурсов с нескольких интерфейсов spy46 Общий по FreeBSD 2 01-01-2011 22:05
как можно определить IP – адрес по (URL) super_Spartan Хочу все знать 5 13-03-2009 16:20
Загрузка - Как с помощью Boot.ini и Total Comander расставить приоритеты среди нескольких О.С. ? Rik. Microsoft Windows 2000/XP 1 15-06-2008 14:06




 
Переход