Войти

Показать полную графическую версию : [решено] Помогите со скриптом скана сети.


glukin
17-02-2017, 11:10
Добрый день всем. Помогите плз написать скрипт.
Есть сеть 10.1.0.0-10.1.255.255.
Нужно сканить ее по SNMP и писать в файл SNMP.txt вида

DeviceName IN A IP-Address
DeviceName IN A IP-Address
DeviceName IN A IP-Address

Нашел, как узнать DeviceName для отдельно взятого устройства:
strTargetSnmpDevice = "10.1.36.1"

Set objWmiLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWmiServices = objWmiLocator.ConnectServer("", "root\snmp\localhost")

Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")
objWmiNamedValueSet.Add "AgentAddress", strTargetSnmpDevice
objWmiNamedValueSet.Add "AgentReadCommunityName", "public"

Set colSystem = objWmiServices.InstancesOf("SNMP_RFC1213_MIB_system", , _
objWmiNamedValueSet)

For Each objSystem In colSystem
WScript.Echo objSystem.sysName
Next

А как это все в цикле сделать и чтобы в файл писалось? В vbs не силён, прошу помощи.

glukin
17-02-2017, 22:34
Никто так и не направит на путь истинный? ((
Хоть в общих чертах скриптик, потом методом проб и ошибок подгоню его под свои нужды...
Затык у меня не в алгоритме, а в синтаксисе vbs. ((

glukin
20-02-2017, 18:43
Готов заплатить разумную сумму. За полностью рабочий скрипт.

megaloman
20-02-2017, 20:00
Нашел, как узнать DeviceName для отдельно взятого устройства: »
И оно работает?

glukin
20-02-2017, 20:02
megaloman,
Да. Попробуйте на чем-нибудь, что умеет SNMP и откликается на коммунити "public"

megaloman
20-02-2017, 21:00
А как это все в цикле сделать и чтобы в файл писалось? В vbs не силён, прошу помощи. »File_Out = "Z:\Box_Out\SNMP.txt"

Set objWmiLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWmiServices = objWmiLocator.ConnectServer("", "root\snmp\localhost")
Set objWmiNamedValueSet = CreateObject("WbemScripting.SWbemNamedValueSet")

Set FSO = CreateObject("Scripting.FileSystemObject")
Set NFile = FSO.OpenTextFile(File_Out, 2, True)

For i = 0 To 255
For j = 0 To 255
strTargetSnmpDevice = "10.1." + CStr(i) + "." + CStr(j)
objWmiNamedValueSet.Add "AgentAddress", strTargetSnmpDevice
objWmiNamedValueSet.Add "AgentReadCommunityName", "public"

Set colSystem = objWmiServices.InstancesOf("SNMP_RFC1213_MIB_system", , objWmiNamedValueSet)

For Each objSystem In colSystem
NFile.WriteLine objSystem.sysName + " IN A " + strTargetSnmpDevice
Next

Next
Next

NFile.Close
Ваша безграничная сумма в разумных пределах в успешном случае меня не интересует :)

glukin
21-02-2017, 10:45
megaloman, Спасибо большое! Попробую завтра ночью, когда на работе буду.

glukin
25-02-2017, 21:57
megaloman, после тщательного допиливания работает. Спасибо за направление.




© OSzone.net 2001-2012