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

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

Ответить
Настройки темы
CMD/BAT - Удаление повторяющихся айпи

Аватара для dj_crazy_joker

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


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

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


Прошу помощи есть веб сервер на локал машине
там оч большие логи
Код: Выделить весь код
62.122.135.154 - - [13/Apr/2012:14:37:29 +0400] "GET / HTTP/1.1" 200 10192
172.21.221.26 - - [13/Apr/2012:14:38:09 +0400] "GET / HTTP/1.1" 200 10192
62.122.135.154 - - [13/Apr/2012:14:38:33 +0400] "GET / HTTP/1.1" 200 10192
180.61.12.95 - - [13/Apr/2012:14:39:50 +0400] "GET /files/3.20/download/05.04.2012/checker_2012-04-04_02.47.13.txt&sa=U&ei=YQKIT7mUNcSaiAfMzKnxCQ&ved=0CB8QFjAH&usg=AFQjCNHa8250gvgVdU9toDjeZ-i0_Fhf2A HTTP/1.1" 404 2978
178.178.1.237 - - [13/Apr/2012:14:40:17 +0400] "GET /files/3.20/download/30.03.2012/Result_out_out.txt HTTP/1.1" 200 1457771
180.61.12.95 - - [13/Apr/2012:14:40:34 +0400] "GET /files/3.20/download/05.04.2012/checker_2012-04-04_02.47.13.txt&sa=U&ei=lQKIT474G6-8iAft-5TMCQ&ved=0CB8QFjAH&usg=AFQjCNHnqjJ_lkw-RhslA2bHNH111jlSwQ HTTP/1.1" 404 2978
193.68.70.2 - - [13/Apr/2012:14:43:17 +0400] "GET /files/3.20/download/29.03.2012/10%D0%BA.txt HTTP/1.1" 200 471552
62.122.135.154 - - [13/Apr/2012:14:50:29 +0400] "GET / HTTP/1.1" 200 10192
94.229.71.155 - - [13/Apr/2012:14:56:46 +0400] "GET /files/3.20/download/06.04.2012/1k_mixa.txt HTTP/1.1" 200 77212
62.122.135.154 - - [13/Apr/2012:14:58:45 +0400] "GET / HTTP/1.1" 200 10192
62.122.135.154 - - [13/Apr/2012:14:58:45 +0400] "GET /css/style.css HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:14:58:45 +0400] "GET /images/logo.png HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:14:58:45 +0400] "GET /images/Untitled.jpg HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:00:39 +0400] "GET / HTTP/1.1" 200 10192
62.122.135.154 - - [13/Apr/2012:15:00:39 +0400] "GET /css/style.css HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:00:39 +0400] "GET /images/logo.png HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:00:39 +0400] "GET /images/Untitled.jpg HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:00:40 +0400] "GET /files.php HTTP/1.1" 200 9399
62.122.135.154 - - [13/Apr/2012:15:00:40 +0400] "GET /css/print.css HTTP/1.1" 404 2978
62.122.135.154 - - [13/Apr/2012:15:00:40 +0400] "GET /css/projection.css HTTP/1.1" 404 2978
62.122.135.154 - - [13/Apr/2012:15:00:40 +0400] "GET /img/01_strong_mini.gif HTTP/1.1" 404 2978
62.122.135.154 - - [13/Apr/2012:15:00:40 +0400] "GET /css/images/moin-h1-background.png HTTP/1.1" 404 2978
62.122.135.154 - - [13/Apr/2012:15:00:42 +0400] "GET / HTTP/1.1" 200 10192
62.122.135.154 - - [13/Apr/2012:15:01:03 +0400] "GET / HTTP/1.1" 200 10964
62.122.135.154 - - [13/Apr/2012:15:01:03 +0400] "GET /css/style.css HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:01:03 +0400] "GET /images/logo.png HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:01:03 +0400] "GET /images/Untitled.jpg HTTP/1.1" 304 -
62.122.135.154 - - [13/Apr/2012:15:01:06 +0400] "GET /files.php HTTP/1.1" 200 10171
товаришь написал прогу которая удялает всё что написано кроме айпи
она исполняеться в cmd такой командой
Код: Выделить весь код
parser.exe access.log access_result.log
после этого создаёться access_result.log со списком айпи
Код: Выделить весь код
62.122.135.154
172.21.221.26
62.122.135.154
180.61.12.95
178.178.1.237
180.61.12.95
193.68.70.2
62.122.135.154
94.229.71.155
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
62.122.135.154
терь нужно удалять повторы, сначала пользовался веб формой для этого, но щас решил с помошью cmd решить эту проблемму

вопрос как это всё организовать??

Отправлено: 16:40, 15-04-2012

 

Ветеран


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

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


Цитата dj_crazy_joker:
нужно удалять повторы »
Код: Выделить весь код
@echo off
setlocal

for /f %%i in (access_result.log) do set "line_%%i=1"
for /f "tokens=2 delims=_=" %%i in (' set line_ ') do 1>>access_result.tmp echo %%i
move access_result.tmp access_result.log
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:44, 15-04-2012 | #2



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

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


Аватара для dj_crazy_joker

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


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

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


Foreigner, спасибо, вопрос, как без сортирровки сохранять??
тоесть чтоб структура списка сохранялась

-------
dchub://dota.mydc.ru


Отправлено: 19:24, 15-04-2012 | #3


Ветеран


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

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


dj_crazy_joker, я бы предложил использовать напрямую, без обработки коллеги, такое средство как Log Parser.

Ваш вариант:
Код: Выделить весь код
"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT DISTINCT Field1 FROM 'E:\Песочница\0135\0001.log'" -i:TSV -iSeparator:spaces -headerRow:OFF -q:ON
Результат…
Код: Выделить весь код
62.122.135.154
172.21.221.26
180.61.12.95
178.178.1.237
193.68.70.2
94.229.71.155
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:09, 15-04-2012 | #4


Аватара для dj_crazy_joker

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


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

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


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

мне удобней через батник запускать всё эт дело и совсем не хочется замучиваться с этими прогами

-------
dchub://dota.mydc.ru


Отправлено: 21:21, 15-04-2012 | #5


Аватара для dj_crazy_joker

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


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

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


ещё вопрос как можно сделать чтоб он сохранял не просто заданным именем а датой

-------
dchub://dota.mydc.ru


Отправлено: 00:46, 16-04-2012 | #6


Старожил


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

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


dj_crazy_joker, если вам не подходит метод Foreigner, попробуйте вот это. Но сразу предупрежу, скорость работы низкая, к примеру, лог с ~100 тысяч строк оно почти 8 минут обрабатывало, зато без сторонних утилит и порядок следования в логе не нарушается.

Код: Выделить весь код
@Echo Off
SetLocal EnableDelayedExpansion
Set Log=test.txt
:: Подсчитываем общее число строк для счетчика в заголовке окна
Set lines=0
For /F "usebackq" %%A In ("%Log%") Do (Set /A lines+=1)
:: Обрабатываем лог, выделяя IP и добавляя только не повторяющиеся
Set i=0
Set IPlist=
For /F "usebackq tokens=1" %%A In ("%Log%") Do (
	Echo !IPlist!|Find "%%A">nul||Set IPlist=!IPlist! %%A
	Set /A i+=1
	Title Progress: [!i!\%lines%]
)
:: Пишем IP в файл
For %%A In (%IPlist%) Do (Echo %%A>>%date%_IP_list.txt)

Отправлено: 02:17, 16-04-2012 | #7


Ветеран


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

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


Цитата dj_crazy_joker:
мне удобней через батник запускать всё эт дело и совсем не хочется замучиваться с этими прогами »
Если Вы считаете, что единожды загрузить и установить одну, предназначенную специально для подобных случаев, утилиту, созданную непосредственно Microsoft, и затем использовать уже приведённый код — это означает «замучиваться» — что ж, дело Ваше.

Вот Вам результат выполнения команды для файла с миллионом строк (из предыдущего примера убран параметр «-q:ON», дабы отобразить статистику исполнения запроса):
Код: Выделить весь код
E:\Песочница\0135>"C:\Program Files\Log Parser 2.2\LogParser.exe" "SELECT DISTINCT Field1 FROM 'E:\Песочница\0135\0001.log'" -iCodepage:1251 -i:TSV -iSeparator:spaces -headerRow:OFF

Field1
--------------
62.122.135.154
172.21.221.26
180.61.12.95
178.178.1.237
193.68.70.2
94.229.71.155

Statistics:
-----------
Elements processed: 1000000
Elements output:    6
Execution time:     1.78 seconds
Обратите внимание на значение «Execution time».
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:18, 16-04-2012 | #8


Аватара для dj_crazy_joker

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


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

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


Anonymоus, твой скрипт у меня закрывается сам где-то на середине

-------
dchub://dota.mydc.ru


Отправлено: 11:49, 16-04-2012 | #9


Ветеран


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

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


Цитата dj_crazy_joker:
вопрос, как без сортирровки сохранять?? »
Код: Выделить весь код
@echo off
setlocal

0<access_result.log set /p "first="
1>access_result.tmp echo %first%

:loop
for /f "tokens=*" %%i in (' findstr /v /g:access_result.tmp access_result.log ') do 1>>access_result.tmp (echo %%i) && goto:loop
move access_result.tmp access_result.log
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:08, 21-04-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Помогите пожалуйста с айпи Евгений Емельянов Сетевые технологии 4 29-10-2010 00:37
[решено] StringRegExp. Вытаскивание повторяющихся кусков кода HTML. ikif AutoIt 7 06-12-2009 10:30
Обход Айпи Military Хочу все знать 5 29-09-2009 23:36
Прочее - Внешний айпи! Strimik Сетевое оборудование 11 18-06-2008 19:32
Бан по айпи amina-2005 Сетевые технологии 2 08-09-2006 11:39




 
Переход