|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Найти ip-адрес по условиям среди нескольких интерфейсов |
|
CMD/BAT - [решено] Найти ip-адрес по условиям среди нескольких интерфейсов
|
Новый участник Сообщения: 32 |
Прошу помощи в решении следующей задачи:
Есть некоторое количество компьютеров с количеством активных сетевых интерфейсов от 3 до 5 на ОС WinXP, Win7 и Win81. При локальном запуске скрипта в переменную должен передаваться ip-адрес интерфейса, на котором в качестве одного из DNS-серверов прописан хотя бы один из этих адресов: 192.168.0.10, 192.168.0.100. Активный интерфейс с такими DNS-серверами может быть только один. |
|
Отправлено: 08:19, 06-02-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата IvanXXL:
Скрытый текст
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
|
Профиль | Отправить PM | Цитировать Спасибо за рабочее решение.
|
Отправлено: 06:24, 09-02-2015 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Определить 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 |
|