-
БарЛог © (21.09.08 18:27) [0]Всем привет. Имеется файл со списком доменных имён машин. Нужно написать скрипт (желательно батник), который бы на выходе давал файл со списком ip-адресов этих машин.
Сложность возникла в программном получении "чистого" айпишника (без всяких других надписей). Как один из вариантов, можно использовать:nslookup comp > c:\ip.txt
, что вернёт:Server: srv-dc1.xxx.ru
Address: 1.1.1.1
Name: comp.xxx.ru
Address: 2.2.2.2
И потом из получившегося файла вынуть 4,9,14 и т.д. строчки.
Если ли способ "покрасивше"?
Заранее сасибо. -
antonn © (21.09.08 18:39) [1]написание консольной тулзы выполняющую эту функцию по имени компа передаваемому через параметр запуска и вывод в батник не подходит? :)
-
БарЛог © (21.09.08 18:47) [2]> написание консольной тулзы выполняющую эту функцию по имени компа передаваемому через параметр запуска и вывод в батник не подходит? :)
Вариант :)
Просто интересно, неужели нет стандартного средства? -
antonn © (21.09.08 18:51) [3]мне нужно было по ИП найти имя, потратив часа три на разбирательство с шаблонами в батнике и разобрав кучу примеров - не получилось, убил мозг, и за пол часика написал в дельфи :)
правда я из tracert пытался выделить %) -
antonn © (21.09.08 18:55) [4]и кстати, после этого мне надоело возиться с батниками, теперь пишу просто консольные утилитки (как например удаление файлов в подпапках оставляя только десяток с последней датой изменения, опеределение свободного места на винте, результат пинга узла (true или false, а не вывод) и тыпы), имхо это куда надежнее, проще и быстрее, чем с сmd возиться.
-
Simpson © (21.09.08 19:04) [5]А если ping'ом?
-
Тын-Дын © (21.09.08 22:42) [6]>БарЛог © (21.09.08 18:27)
Если бы ты ещё формат файла привёл. -
Eraser © (21.09.08 22:54) [7]> [0] БарЛог © (21.09.08 18:27)
> Нужно написать скрипт (желательно батник)
может лучше не батник, а другой скрипт? -
пинговалка на VBS и WMIOption Explicit
Dim WMIService,Pings,Status
Set WMIService = GetObject("winmgmts:\\.\root\cimv2")
Set Pings = WMIService.ExecQuery ("Select * From Win32_PingStatus where Address = 'www.y.ru'")
For Each Status in Pings
If IsNull(Status.StatusCode) or Status.StatusCode<>0 Then
WScript.Echo "Computer did not respond."
Else
Wscript.Echo "Computer "& Status.ProtocolAddress &" responded in " & Status.ResponseTime & "ms " & Status.ResponseTimeToLive & "TTL"
End If
Next -
можно всех пропинговать и вытащить Status.ProtocolAddress
-
Некто (22.09.08 16:01) [10]Slym © (22.09.08 06:07) [8]
браво!
БарЛог, это стандартное средство. В каждой винде есть. :)
вы всё ещё пользуетесь батниками? ))) тогда мы идём к вам! ) -
Anatoly Podgoretsky © (22.09.08 16:08) [11]> Некто (22.09.2008 16:01:10) [10]
Может ты не умеешь их просто готовить?