кто видел програмку, которая каждую секунду в фоновом режиме делает лог netstat -b, an и сохраняет это счастье в лог с удобным внутренним поиском / фильтром .?
Printable View
кто видел програмку, которая каждую секунду в фоновом режиме делает лог netstat -b, an и сохраняет это счастье в лог с удобным внутренним поиском / фильтром .?
"netstat -an>C:\netstat.txt" так не пойдет?
Если по-простому: я бы посоветовал сделать циклический .bat файл на основе утилиты tcpvcon (консольной версии утилиты tcpview) от Sysinternals. У этой утилиты есть ключ -c, позволяющий делать вывод информации в формате csv - это удобно для последующего анализа, например в Excel. Насчет "каждую секунду" я не уверен, особенно если у вас много коннектов - в этом случае даже одиночный вывод утилиты занимает несколько секунд (что, впрочем, характерно и для утилиты netstat).
PS. А для чего вам это нужно? Может, лучше воспользоваться сниффером?
X-NetStat делает такое автоматически, если не отменить в настройках. Правда, программа платная. :(
Спасибо всем :biggrin: Просто я тут пытаюсь продвигать наш сервис на одном местном израильском форуме, человек попросил такую возможность, а никто там толком не знает как , да и мне интересно стало как это сделать.
[size="1"][color="#666686"][B][I]Добавлено через 1 час 58 минут[/I][/B][/color][/size]
auintrust,
Если не трудно напиши пожалуйста рабочий батник.
Мысли были, но что то не то c bat...
[QUOTE=drongo;161787]auintrust,
Если не трудно напиши пожалуйста рабочий батник.
Мысли были, но что то не то c bat...[/QUOTE]
Ну, что-то типа такого (как самый простой вариант, с использованием только системных команд):
[QUOTE]
@echo off
C:
cd \tcpvcon
date /T > tcpvcon.log
time /T >> tcpvcon.log
:loop
echo --- >> tcpvcon.log
tcpvcon -c >> tcpvcon.log
ping -n 2 -w 1000 localhost > NUL
goto :loop
[/QUOTE]
Команда [I]ping[/I] в данном случае моделирует паузу в 1 секунду, команда [I]echo ---[/I] пишет в файл журнала разделитель между отдельными выводами команды [I]tcpvcon[/I] (если это нужно), команды [I]date[/I] и [I]time[/I] просто выводят текущую дату и время в самом начале журнала. Файл после запуска будет выполняться бесконечно, поэтому останавливать его нужно принудительно через комбинацию клавиш [I]Ctrl-C[/I].
Конечно, это не идеальный вариант - это всего лишь самый простейший... =) Нужно точно знать, что требуется видеть в журнале для последующей обработки, и, в соответствии с этим, сформировать батник... ну, или переписать все на более мощном языке. =)
лог файл не создаётся ...
[QUOTE=drongo;161884]лог файл не создаётся ...[/QUOTE]
Странно. :unsure: После первого же "... > tcpvcon.log" должен создаться tcpvcon.log в текущем каталоге.
Если нужны только данные, которые предоствавляет netstat, почему не запустить ее в цикле? последним параметром в списке утилита принимает интервал для повтора в секундах. Будучи запущенной с указанным интервалом, она повторяет работу в цикле до тех пор, пока вы ее не прервете. Соответственно, Вариант от [b]Jolly Rojer[/b] измененный до "netstat -a -n 10 > C:\netstat.txt" даст лог-файл, куда будут писаться результаты с интервалом в 10 секунд. Или я чего-то недопонял, или велосипед изобретаем.
Numb,показывает только локальные локалхост : port и без апликаций- мало ;)
[size="1"][color="#666686"][B][I]Добавлено через 2 минуты[/I][/B][/color][/size]
aintrust, Может что с копированием..., прикрепи пожалуйста в зипе с паролем -> рабочий батник .
[QUOTE=drongo;161923]Numb,показывает только локальные локалхост : port и без апликаций- мало ;)[/QUOTE]
В таком формате: "[b]netstat -b -a -n > netstat.txt[/b]" показывает и внешний адрес, и приложения:
Активные подключения
Имя Локальный адрес Внешний адрес Состояние PID
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 896
d:\windows\system32\WS2_32.dll
D:\WINDOWS\system32\RPCRT4.dll
d:\windows\system32\rpcss.dll
D:\WINDOWS\system32\svchost.exe
D:\WINDOWS\system32\ADVAPI32.dll
[svchost.exe]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
[Система]
...
TCP 192.168.1.34:1138 216.246.90.119:80 ESTABLISHED 504
[IEXPLORE.EXE]
TCP 192.168.1.34:1141 216.246.90.119:80 ESTABLISHED 504
[IEXPLORE.EXE]
TCP 192.168.1.34:1143 64.233.179.104:80 ESTABLISHED 504
[IEXPLORE.EXE]
UDP 0.0.0.0:1149 *:* 504
[IEXPLORE.EXE]
борка, спасибо за наводку но не сработало , а вот так :
[code]netstat -b -n 10 > C:\netstat.txt[/code]
получилось, только вот на win2000 не получиться ;(
@ [B]Numb[/B], [B]borka[/B]
[I]netstat[/I] был предложен с самого начала. Видимо, он чем-то не устроил [B]drongo[/B]... На мой взгляд, вывод [I]netstat[/I] (и особенно с ключом [I]-b[/I]) несколько неудобен для просмотра (вариант с [I]X-NetStat[/I] этом плане более предпочительный) и, тем более, для автоматического анализа и дальнейшей фильтрации (а это было изначальным условием задачи). По этой причине я предложил утилиту [I]tcpvcon[/I] - она умеет выводить в формате CSV, что в дальнейшем легко экспортировать в Excel или в любую базу данных, а потом уже делать любые анализы.
@ [B]drongo[/B]
Закинул батник вместе с "инструкцией по применению" в личку. Кстати, а на какой ОСи ты пытаешься все это сделать? Батник 100% будет работать на XP и Win2k, про остальное я уже забыл.
PS. Я полагаю, что столько мнений в этой ветке образовалось лишь потому, что не совсем ясно, что и в каком виде нужно получить в итоге. От этого в полной мере зависит решение задачи и задействованные в нем тулзы. Мой вариант - всего лишь вариант. Он ничем не лучше использования [I]netstat[/I] (ну, и не хуже)... =)
aintrust ,Получилось, только создался текстовый лог, хотелось бы в CSV как и обещал ...
[QUOTE=drongo;162019]aintrust ,Получилось, только создался текстовый лог, хотелось бы в CSV как и обещал ...[/QUOTE]
В вызове утилиты [I]tcpvcon[/I] оставлен ключ [I]-c[/I], т.е. в батнике написано вот так?
[CODE]tcpvcon -c >> tcpvcon.log[/CODE]
Должен создаваться текстовый файл, где строки записаны в формате [I]csv[/I] (comma separated values, т.е. все значения в строке выводятся через запятую).
[quote=aintrust;162041]В вызове утилиты [I]tcpvcon[/I] оставлен ключ [I]-c[/I], т.е. в батнике написано вот так?
[code]tcpvcon -c >> tcpvcon.log[/code]Должен создаваться текстовый файл, где строки записаны в формате [I]csv[/I] (comma separated values, т.е. все значения в строке выводятся через запятую).[/quote]
ясно, я поменял в батнике сразу на csv - создаётся автоматом и не надо делать лишних манипуляций .
[code]
@echo off
C:
cd \tcpvcon
date /T > tcpvcon.csv
time /T >> tcpvcon.csv
:loop
echo --- >> tcpvcon.csv
tcpvcon -c >> tcpvcon.csv
ping -n 2 -w 5000 localhost > NUL
goto :loop[/code]