PDA

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


retabo
01-04-2012, 13:06
Всем привет.
Прошу вашей помощи. Помогите написать простой парсер.
имеются ip такого типа
222.222.222.222;admin;login
222.222.222.222;terato;feare
222.222.222.222;detaro;berati
222.222.222.222;fefgr;gtjhuyiu
-
IP в тексnе одни и теже попадаются только с разными данными для входа
-----------------------------------------
Допустим если в тексте попадаются ip с данными ;admin;login, то все остальные данные вместе с дубликатами ip удаляются в том числе и ip с данными ;admin;login.

Спасибо, за помощь.

Foreigner
01-04-2012, 14:34
retabo,

findstr ";admin;login$" 1.txt && 1>1.txt echo 222.222.222.222;admin;login

retabo
01-04-2012, 16:52
cho 222.222.222.222;admin;login »

Спасибо, за ответ.

Ну а если txt имеет разный список IP? И еще данный bat, представленный выше, оставляет IP с данными 222.222.222.222;admin;login, ну а как и эту строку разом удалить вместе с остальными при условии что - найден ип с ;admin;login - удалить все дубли ип но с другим login;password

Foreigner
01-04-2012, 18:45
retabo,
Еще раз по пунктам. Что-то не въезжаю. И пример файла.

retabo
01-04-2012, 19:02
вот пример:

212.35.91.23;admin;root
212.35.77.161;sucker_fucker;sucker_fucker
212.35.77.161;admin;root
212.35.77.161;admin;admin
212.35.77.77;sucker_fucker;sucker_fucker

-----------------
;sucker_fucker;sucker_fucker - этот логин и пасс выступает в качестве проверочного, если он присутствует для одного IP, то другие варианты входа для этого же IP в тексте НЕ рабочие (в том числе ;sucker_fucker;sucker_fucker) , и следовательно удаляется все IP вместе с дынными для входа!

Пример. Имеется IP c доступом:
212.35.77.161;sucker_fucker;sucker_fucker

Но также имееются для этого ип другие варианты в тексте:
212.35.77.161;admin;root
212.35.77.161;admin;admin

Так как мы видем в тексте проверочный логин и пасс ;sucker_fucker;sucker_fucker, то другие варианты (212.35.77.161;admin;root, 212.35.77.161;admin;admin) удаляются, вместе с 212.35.77.161;sucker_fucker;sucker_fucker, из списка, так как известно что доступа нет.

Как то так.

Iska
01-04-2012, 19:21
Еще раз по пунктам. Что-то не въезжаю. И пример файла. »
Не только Вы ;).

retabo
01-04-2012, 19:23
Я вроде уже рассписал поподробней....

Foreigner
01-04-2012, 20:01
Т.е. надо удалить все вхождения проверочного логина, плюс удалить все вхождения ip:

@echo off
setlocal enabledelayedexpansion

for /f "tokens=1-3 delims=;" %%i in (1.txt) do call:setfalseip %%i "%%j;%%k"
for /f "tokens=1-3 delims=;" %%i in (1.txt) do call:check %%i "%%j;%%k"
goto:eof

:setfalseip

if "%~2"=="sucker_fucker;sucker_fucker" (

set /a cnt+=1
set "falseip_!cnt!=%1"

)

:: move 1.tmp 1.txt

goto:eof

:check

for /l %%i in (1,1,%cnt%) do if "!falseip_%%i!"=="%1" goto:eof
1>>1.tmp echo %1;%~2

как-то так

retabo
01-04-2012, 20:39
Foreigner,
Пробовал этот батник, почему то у меня никакого результат нет....просто черный экран в кмандной строке, и результат не отображается(

Foreigner
01-04-2012, 20:49
retabo,
Проверил, все работает. Какая версия Windows?
и результат не отображается(
должен создаваться файл 1.tmp. Если надо перезаписать исходный файл 1.txt, то убери "::" в строке ":: move 1.tmp 1.txt"

retabo
01-04-2012, 20:59
Foreigner,
Да, не углядел что в .tmp сохраняется. Спасибо.

Но это конечно немного не то.

Если в текстовом файле есть к примеру:
145.125.22.22;admin;admin
145.125.22.22;admin;root
145.125.22.22;root;root
145.125.22.22;root;admin
145.125.22.22;sucker_fucker;sucker_fucker

то он удаляет только 145.125.22.22;sucker_fucker;sucker_fucker.
А необходимо при наличии IP;sucker_fucker;sucker_fucker удалять весь столбец с таким же IP (не зависимо какие там логины и пароля). Зачем они нужны, если заранее известно что они не работают при наличии попавшего sucker_fucker;sucker_fucker

Foreigner
01-04-2012, 21:17
то он удаляет только 145.125.22.22;sucker_fucker;sucker_fucker »
А если посмотреть внимательней? Он удаляет все сакеры_факеры и все другие с найденным у факеров IP.

retabo
01-04-2012, 21:27
Foreigner,

Все разобрался, спасибоForeigner за помощь.




© OSzone.net 2001-2012