Удаление дублей

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by andreipup, 3 Jun 2014.

  1. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0
    76.172.157.66;user6;user3
    76.172.157.66;user2;user3
    76.172.157.66;user5;user1
    76.172.157.66;adnin1;user1
    76.172.157.66;adnin;user1
    76.172.156.174;adnin6;user2
    76.172.156.174;adnin8;user2
    76.172.156.174;user3;user2
    76.172.156.174;adnin;user2
    76.172.156.174;user3;user2
    76.172.156.170;adnin2;user8
    76.172.156.168;user7;user9


    Нужно удалить повторяющиеся файлы.


    76.172.157.66;user6;user3
    76.172.157.66;user2;user3
    76.172.157.66;user5;user1
    76.172.157.66;adnin1;user1
    76.172.157.66;adnin;user1
    76.172.156.174;adnin6;user2
    76.172.156.174;adnin8;user2
    76.172.156.174;user3;user2
    76.172.156.174;adnin;user2
    76.172.156.174;user3;user2

    Причем что бы удалилось вместе с повторением ипа то есть
    (логин пасс что бы то же удалился)


    76.172.157.66
    76.172.156.174

    Что бы на выходе осталось только это

    76.172.156.170;adnin2;user8
    76.172.156.168;user7;user9


    Это что бы все удалилось.

    76.172.157.66;user6;user3
    76.172.157.66;user2;user3
    76.172.157.66;user5;user1
    76.172.157.66;adnin1;user1
    76.172.157.66;adnin;user1
    76.172.156.174;adnin6;user2
    76.172.156.174;adnin8;user2
    76.172.156.174;user3;user2
    76.172.156.174;adnin;user2
    76.172.156.174;user3;user2

    Сам пробовал разделять файл логин пасс и ипы отдельно но остаются повторы ипов.

    Заранее благодарю за помощь :)
     
    #1 andreipup, 3 Jun 2014
    Last edited: 3 Jun 2014
  2. Alexandr II

    Alexandr II -=ImperatoR=-

    Joined:
    28 Dec 2007
    Messages:
    1,069
    Likes Received:
    671
    Reputations:
    87
    http ://proapi.ru/no_repeat_lines/
     
  3. KIR@PRO

    KIR@PRO from Exception

    Joined:
    26 Dec 2007
    Messages:
    826
    Likes Received:
    291
    Reputations:
    359
    Дак тебе тупо по ипам отфильтровать нужно? Как я понял из твоего обьяснения, тебе не важно какой логин и пароль останется, ибо они все актуальны, либо тебе нужен последний логин и пас отодного и того же ипа. Я правильно тебя понял?
     
    _________________________
  4. zeoman

    zeoman Member

    Joined:
    17 Jun 2010
    Messages:
    37
    Likes Received:
    43
    Reputations:
    43
    Как я понял ему нужно отфильтровать набрученые SSH , удалять все строки где одинаковых IP один и более , но логины и пароли у них разные , оставлять только уникальные IP без повторов
     
  5. Alexandr II

    Alexandr II -=ImperatoR=-

    Joined:
    28 Dec 2007
    Messages:
    1,069
    Likes Received:
    671
    Reputations:
    87
    как я понял ему нужно удалить дубли айпи все дубли без остатка, но оставить те которые не дублируются
     
  6. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0

    Да верно друг!
    Именно так нужно кто сможет?


    Alexandr II не выходит им(
     
    #6 andreipup, 3 Jun 2014
    Last edited: 3 Jun 2014
  7. qaz

    qaz Elder - Старейшина

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    так тебе просто отфильтовать или рабочая прорамма нужна?
     
    1 person likes this.
  8. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Раз уж тема про программирование и компилируемые языки, то держи некачественное решение
    Code:
    #include <iostream>
    #include <fstream>
    #include <string>
    #include <vector>
    #include <map>
    #include <regex>
    #include <cinttypes>
    
    using namespace std;
    
    int main()
    {
    	ifstream ifs("in.txt");
    	ofstream ofs("out.txt");
    
    	if (!ifs || !ofs)
    		return EXIT_FAILURE;
    
    	string line;
    	map<string, uint64_t> ip;
    	map<string, string> ip_out;
    	regex delim(";");
    	vector<string> lparts;
    
    	while (!ifs.eof())
    	{
    		getline(ifs, line);
    
    		lparts.clear();
    		for_each(regex_token_iterator<string::iterator>(line.begin(), line.end(), delim, -1), regex_token_iterator<string::iterator>(), [&lparts](const string & s){ lparts.push_back(s); });
    
    		if (lparts.size() != 3)
    			continue;
    
    		ip[lparts[0]]++;
    
    		if (ip[lparts[0]] == 1)
    			ip_out[lparts[0]] = lparts[1] + ";" + lparts[2];
    		else
    			ip_out.erase(lparts[0]);
    	}
    
    	for_each(ip_out.begin(), ip_out.end(), [&ofs](const pair<string, string> & p){ ofs << p.first << ';' << p.second << endl; });
    
    
    	return EXIT_SUCCESS;
    }
    
     
    _________________________
    1 person likes this.
  9. VladimirV

    VladimirV Well-Known Member

    Joined:
    1 Apr 2013
    Messages:
    1,130
    Likes Received:
    6,150
    Reputations:
    57
    Писал такую программку. ТЫЦ
    В файле 'in.txt' - то что Вам необходимо отсортировать. Разделитель между IP,PASS,LOGIN - ';'
    В файле 'out.txt' результат.
     
  10. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0

    VladimirV Все сделал как ты написал,жму старт,не хрена не происходит)

    Kaimi как это дело собрать)?
     
  11. VladimirV

    VladimirV Well-Known Member

    Joined:
    1 Apr 2013
    Messages:
    1,130
    Likes Received:
    6,150
    Reputations:
    57
    Файл out.txt стереть. потом запустить. Файл out.txt должен появиться! Вы в in.txt вставили новые данные?
     
  12. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Не, с такими вопросами точно не в этот раздел. Это тогда сразу надо было в болталку постить.
     
    _________________________
  13. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0

    VladimirV Вроде разобрался файл 4 метра просто из-за этого так долго) Спасибо тебе огромное!

    Kaimi Дорабатываем твой софт) http://kaimi.ru/2010/12/ssh-bruteforce/ Это он такую байду увы выдает.
     
  14. VladimirV

    VladimirV Well-Known Member

    Joined:
    1 Apr 2013
    Messages:
    1,130
    Likes Received:
    6,150
    Reputations:
    57
    Скорости нет. Чем больше файл те дольше.
     
  15. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0

    Ага мин 15 уже думает
    все обработал)
     
  16. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Байду выдает, потому что libssh считает успешной авторизацией то, что ею не является.
    Проще тогда уж было в софт добавить вызов чего-нибудь вроде uname после попытки авторизации и проверять результат выполнения.
     
    _________________________
  17. andreipup

    andreipup Elder - Старейшина

    Joined:
    21 Aug 2007
    Messages:
    265
    Likes Received:
    21
    Reputations:
    0
    Ну я не кодер)
    и решение VladimirV вполне устраивает :)
     
  18. Lazy

    Lazy New Member

    Joined:
    19 Jul 2011
    Messages:
    94
    Likes Received:
    2
    Reputations:
    3
    Приделал к бруту кнопочку для очистки дублей .
    В архиве 3 модифицированных файла исходника и release сборка .
    (Сборку пока нормально не тестировал ).
    https://www.sendspace.com/file/67367j