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

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

Ответить
Настройки темы
CMD/BAT - Сопоставление серверов и IP

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


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

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


В локальной сети получаю список серверов командой
net view, получаю ответ в следующем виде
Код: Выделить весь код
Servername             Beschreibung

------------------------------------------------
\\MACBOOKPRO-C690      Daniels MacBook Pro
\\PLATZ1203
\\PLATZ1405
\\PLATZ1407
\\PLATZ1409
\\PLATZ1413
\\PLATZ1418
\\PLATZ1419
\\PLATZ1420
\\PLATZ1422
\\PLATZ1423
\\PLATZ1439
\\PLATZ302
\\PLATZ505
\\PLATZ507
\\PLATZ509
\\PLATZ510
\\PLATZ511
потом нужно каждому серверу сопоставить IP с помощью nslookup PLATZ1405
Код: Выделить весь код
Server:  ipfire.server.org
Address:  192.168.0.157

Name:    platz1405.server.org
Address:  192.168.0.51
в результате нужен список в виде:
Код: Выделить весь код
1. Servername="PLATZ1405", IP="192.168.0.51"
2.
...
начал так:
Код: Выделить весь код
@echo off
for /f "tokens=* delims=\" %%i in ('net view^|Find "\"') do (echo %%i)
pause
Проблемы:
1. первое имя получаю вместе с описанием
MACBOOKPRO-C690 Daniels MacBook Pro
как его отрезать?
2. при nslookup как отпарсить именно второе вхождение Address: , а не первое?

Отправлено: 11:19, 23-07-2013

 

Старожил


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

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


Код: Выделить весь код
@echo off
for /f "delims=\ " %%i in ('net view ^| find "\"') do (
set /a count+=1
for /f "skip=1 tokens=2" %%a in ('"nslookup %%i 2>nul | findstr Address"') do (
call echo %%count%%. Servername="%%i", IP="%%a">>list.txt
))
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:42, 23-07-2013 | #2



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

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


Ветеран


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

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


PowerShell:
Код: Выделить весь код
net.exe view | Select-String -Pattern "\\\\(.*?) " | ForEach-Object -Process {
    $IPHostEntry = [Net.Dns]::GetHostEntry($_.Matches[0].Groups[1].Value)
    
    Write-Host $("{0, -30}" -f $IPHostEntry.HostName) -NoNewline
    
    $IPHostEntry.AddressList | ForEach-Object -Process {
        Write-Host $("{0, -17}" -f $_.IPAddressToString) -NoNewline
    }
    Write-Host
}
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 23-07-2013 | #3


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


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

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


Sphinx114, спасибо большое! Всё правильно
я пробовал с пробелом "delims=\ " результат был тот же, что и без него...
не подумал, что tokens=* всё портил)

по второму циклу пара вопросов
"skip=1 tokens=2" это ищем 2 вхождения и первое игнорируем?
для чего 2>nul не понял, без него работает вроде так же

а ещё вопрос не по реализации, а по используемым мною командам
может есть способ проще? может какая-то команда показывает сразу и IP и имена, а я не нашёл?


Цитата Iska:
PowerShell: »
Спасибо тоже, для общего развития... но у меня XP там вроде надо его отдельно устанавливать, пока необходимости не вижу

Последний раз редактировалось EDIsaev, 23-07-2013 в 14:24.


Отправлено: 14:09, 23-07-2013 | #4


Ветеран


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

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


Цитата EDIsaev:
"skip=1 tokens=2" это ищем 2 вхождения и первое игнорируем? »
Пропускаем первую («skip=1») из отфильтрованных по «Address» строк:
Цитата:
Address: 192.168.0.157
Address: 192.168.0.51
Берём только второй токен («tokens=2»).

Цитата EDIsaev:
для чего 2>nul не понял, без него работает вроде так же »
Поскольку вывод и так фильтруется по «Address» — действительно, не особо нужен. Но так — правильнее.

Цитата EDIsaev:
а ещё вопрос не по реализации, а по используемым мною командам
может есть способ проще? »
Чаще делают опрос AD на предмет перечня машин, а не «net.exe view».

Цитата EDIsaev:
может какая-то команда показывает сразу и IP и имена, а я не нашёл? »
Нет.

Отправлено: 14:35, 23-07-2013 | #5


Старожил


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

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


Цитата EDIsaev:
tokens=2 »
Разделители подстрок по умолчанию (delims) это таб и пробел. tokens=2 это вторая подстрока в строке, она присваивается переменной %%a
Цитата EDIsaev:
для чего 2>nul не понял »
Да я в ком строке проверял и разок еггог вылез (*** Can't find server name for address x.x.x.x: Timed out) , на всякий случай его нейтрализовал, хотя да, на stdin фаиндстра оно не идёт.

Последний раз редактировалось Sphinx114, 23-07-2013 в 16:40.


Отправлено: 16:13, 23-07-2013 | #6


Аватара для sunnykey

Пользователь


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

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


Цитата Iska:
Цитата EDIsaev:
может какая-то команда показывает сразу и IP и имена, а я не нашёл? »
Нет. »
Только если в powershell
Код: Выделить весь код
Test-connection "ya.ru"

-------
cmd умри, powershell живи=)
Powershel 4.0 microsoft.com/ru-ru/download/details.aspx?id=40855


Отправлено: 16:22, 23-07-2013 | #7


Ветеран


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

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


sunnykey, это, фактически, тот же «Win32_PingStatus».

Отправлено: 17:00, 23-07-2013 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - Груповая политика, сопоставление дисков Sergey666 Windows Server 2008/2008 R2 2 22-05-2014 16:48
2008 R2 - Перенос терминальных серверов и серверов лицензий с 2003 R2 на 2008 R2 ctapik Windows Server 2008/2008 R2 6 24-05-2010 13:17
2010 - Сопоставление файлов Microsoft Office 2010 c4uk4a Microsoft Office (Word, Excel, Outlook и т.д.) 2 04-05-2010 10:16
Интернет - Не преобразуются имена серверов в IP адресса Alexandr80 Microsoft Windows 2000/XP 3 13-06-2008 14:40
сопоставление alex11 Хочу все знать 4 21-03-2005 20:04




 
Переход