Снятие статистики с интерфейса |
Здравствуйте, гость ( Вход | Регистрация )
Снятие статистики с интерфейса |
Aug 8 2006, 09:55
Сообщение
#1
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
Какой программой/драйвером можно снимать статистику с сетевых интерфейсов в реальном времени под Windows 5.хи желательно с занесением по нужному шаблону в БД MySQL, или хотя бы подсказать куда копать?
-------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Aug 8 2006, 12:07
Сообщение
#2
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Может как-то так ?
strComputerName = "." ' Для локальной машины Set objSWbemServices = GetObject("winmgmts:\\" & strComputerName & "\root\cimv2") Set colRawData = objSWbemServices.ExecQuery("select * from Win32_PerfRawData_Tcpip_NetworkInterface") Set colCookedData = objSWbemServices.ExecQuery("select * from Win32_PerfFormattedData_Tcpip_NetworkInterface") Const doBother = 13 For i = 1 To doBother For Each objRawData In colRawData objRawData.Refresh_ WScript.Echo "-- Необработанные данные as is " & String(80, "-") WScript.Echo objRawData.Name & ":" & CDate(objRawData.Timestamp_PerfTime) WScript.Echo "BytesReceivedPerSec: " & objRawData.BytesReceivedPerSec WScript.Echo "BytesSentPerSec: " & objRawData.BytesSentPerSec WScript.Echo "BytesTotalPerSec : " & objRawData.BytesTotalPerSec WScript.Echo vbCRLF & "Все свойства: " For Each objClassProperty In objRawData.Properties_ WScript.Echo String(5, " ") & objClassProperty.Name & ": " & objClassProperty.Value Next Next For Each objCookedData In colCookedData objCookedData.Refresh_ WScript.Echo "-- Обработанные данные (как в системном мониторе) " & String(80, "-") WScript.Echo objCookedData.Name & ":" WScript.Echo "BytesReceivedPerSec: " & objCookedData.BytesReceivedPerSec WScript.Echo "BytesSentPerSec: " & objCookedData.BytesSentPerSec WScript.Echo "BytesTotalPerSec : " & objCookedData.BytesTotalPerSec WScript.Echo vbCRLF & "Все свойства: " For Each objClassProperty In objCookedData.Properties_ WScript.Echo String(5, " ") & objClassProperty.Name & ": " & objClassProperty.Value Next Next WScript.Echo String(80, "-") WScript.Sleep 1000 Next у меня "cooked" данные нашлись только под Win2003... кстати запускать лучше так : CScript "имя скрипта.vbs" > "имя файла.txt" Дает смотреть кстати только тем юзерам, кто имеет на это право, ибо WMI Кстати, токо что написал прогу, которая по WMI дает админам смотреть у кого-чего на диске (компы одном в домене) и пошареварить что надо (без лишнего гемороя и втихаря) зачем я это сделал... пойду стеру |
|
|
Aug 8 2006, 12:10
Сообщение
#3
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
мне как раз под вин2003 нужно
а сбрасывать может только в файл? хотя конечно можно потом сделать 1раз в сутки перенос данных файла в БД, через планировщик задач -------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Aug 8 2006, 12:19
Сообщение
#4
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
А сбрасывать будет куда напишешь!!! А куда надо? А если в MySQL, то можешь ли поставить евоный ODBC, а то не через ADO гемор будет.... А хотя можно еще заюзать perl- или php-скрипт, оформленный как компонент wsc... (под рукой сейчас только ничего такого нет... ) |
|
|
Aug 8 2006, 12:25
Сообщение
#5
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
А сбрасывать будет куда напишешь!!! А куда надо? А если в MySQL, то можешь ли поставить евоный ODBC, а то не через ADO гемор будет.... А хотя можно еще заюзать perl- или php-скрипт, оформленный как компонент wsc... (под рукой сейчас только ничего такого нет... ) а как через ОДБС отправить инфу, т.к. поставить драйвер для мускула поставить лягко -------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Aug 8 2006, 12:42
Сообщение
#6
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
надо зайти Администрирование->Источники данных (ODBC) и сделать Системный DSN для нужной базы MySQL, а дальше примерно так (самый простой безнаворотный вариант):
Set adoCn = CreateObject("ADODB.Connection") adoCn.Open "имя_созданного_системного_DSN" ' Выполняем нужные команды SQL adoCn.Execute "insert into MyTable(Field1, Field2) values (" & iField1 & ", '" & strField2 & "')" adoCn.Close Set adoCn = Nothing раз уш пошел разговор, то открывать соединение можно только в начале программы, а закрывать только в конце... |
|
|
Aug 8 2006, 14:26
Сообщение
#7
|
|
Настоящий ADSL'щик Группа: Posters Сообщений: 462 Регистрация: 8.10.2005 Пользователь №: 97 |
Кстати, токо что написал прогу, которая по WMI дает админам смотреть у кого-чего на диске (компы одном в домене) и пошареварить что надо (без лишнего гемороя и втихаря) зачем я это сделал... пойду стеру Ух Паша разошелся -------------------- We do what we must because we can
|
|
|
Aug 8 2006, 14:58
Сообщение
#8
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
Код strComputerName = "." ' Для локальной машины Set objSWbemServices = GetObject("winmgmts:\\" & strComputerName & "\root\cimv2") Set colRawData = objSWbemServices.ExecQuery("select * from Win32_PerfRawData_Tcpip_NetworkInterface") Set colCookedData = objSWbemServices.ExecQuery("select * from Win32_PerfFormattedData_Tcpip_NetworkInterface") Const doBother = 13 For i = 1 To doBother For Each objRawData In colRawData objRawData.Refresh_ WScript.Echo "-- Необработанные данные as is " & String(80, "-") WScript.Echo objRawData.Name & ":" & CDate(objRawData.Timestamp_PerfTime) WScript.Echo "BytesReceivedPerSec: " & objRawData.BytesReceivedPerSec WScript.Echo "BytesSentPerSec: " & objRawData.BytesSentPerSec WScript.Echo "BytesTotalPerSec : " & objRawData.BytesTotalPerSec WScript.Echo vbCRLF & "Все свойства: " For Each objClassProperty In objRawData.Properties_ WScript.Echo String(5, " ") & objClassProperty.Name & ": " & objClassProperty.Value Next Next For Each objCookedData In colCookedData objCookedData.Refresh_ WScript.Echo "-- Обработанные данные (как в системном мониторе) " & String(80, "-") WScript.Echo objCookedData.Name & ":" WScript.Echo "BytesReceivedPerSec: " & objCookedData.BytesReceivedPerSec WScript.Echo "BytesSentPerSec: " & objCookedData.BytesSentPerSec WScript.Echo "BytesTotalPerSec : " & objCookedData.BytesTotalPerSec WScript.Echo vbCRLF & "Все свойства: " For Each objClassProperty In objCookedData.Properties_ WScript.Echo String(5, " ") & objClassProperty.Name & ": " & objClassProperty.Value Next Next WScript.Echo String(80, "-") WScript.Sleep 1000 Next несколько вопросов по скрипту. Почему 13 проходов он делает? причем с периодом в 1 секунду и еще такое: у меня есть 4 интерфейса, мне нужно выцеплять только с 2х, а не со всех. где прописать это? или же мне нужно выцеплять ИПишники и в зависимости от ИП-адреса обрабатывать по разному -------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Aug 8 2006, 16:03
Сообщение
#9
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Про 13 раз я ничего не скажу
Запрос можно изменить - это обычный SQL (хотя если быть совсем точным, то WQL). Например, так: select * from Win32_PerfRawData_Tcpip_NetworkInterface where Name like '%SiS%' или (если с извратом) select * from Win32_PerfRawData_Tcpip_NetworkInterface where CurrentBandwidth = 100000000 Отбирать можно по-любому полю, а какие поля есть - предыдущий скрипт выдавал Про ИП не совсем понял... в принципе возможно конечно все, просто так можно слишком далеко зайти... Если тебе нужно просто считать все пакеты данных без привязок к сетевым интерфейсом, то нужно просто заменить им класса Win32_PerfRawData_Tcpip_NetworkInterface на Win32_PerfRawData_Tcpip_IP (у него нет свойств BytesReceivedPerSec, BytesSentPerSec, BytesTotalPerSec, так что их вывод из скрипта лучше удалить, тем более что там все равно ВСЕ свойства показываются) Может меня с самого начала не в ту степь понесло? Там кстати можно было в Управлении компом -> Журналы и оповещения производительности -> Журналы счетчиков можно было добавить новый журнал и добавить в него новые счетчики для объектов типа "Сетевой интерфейс" или "IP" (там кстати все свойства приведены на русском и с объяснением). Теоретически там можно настроить и вывод журнала как в файл, так и в БД SQL (у меня не в файл че-то не получилось). Но этот вариант мне не очень нравиться - ибо проблемы с реюзабильностью и переносимостью, к тому же там нельзя управлять частотой пинга параметров и форматом журнала... |
|
|
Aug 8 2006, 17:38
Сообщение
#10
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
Хотя ладно скажу
Цитата For i = 1 To doBother значит "пока не надоест" |
|
|
Aug 8 2006, 21:50
Сообщение
#11
|
|
Супер постер Группа: Posters Сообщений: 575 Регистрация: 17.11.2005 Из: AfaNet Пользователь №: 132 |
но у тебя же
Код Const doBother = 13 For i = 1 To doBother ..... Next т.е. doBother это константа равная 13, а внутри цила ты вроде не переназначаешь или я не так понимаю? -------------------- "неправильная" подпись может быть находкой для шпионов
город: Город Афанет (траф) Yandex.Деньги 4100151149425 #КартинкА# |
|
|
Aug 8 2006, 22:46
Сообщение
#12
|
|
Пользователь Группа: Posters Сообщений: 116 Регистрация: 22.5.2006 Из: Чебоксары Пользователь №: 616 |
|
|
|
Текстовая версия | Сейчас: 4th May 2024 - 17:15 |