1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Поновее ip-to-country.csv

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Deals, 19 авг 2011.

  1. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Скачал с сайта: http://software77.net/geo-ip/?DL=2&x=Download
    Но столкнулся с проблемой формата файла.
    Формат с сайта:
    Код:
    "16777216","16777471","apnic","1313020800","AU","AUS","Australia"
    Формат бота:
    Код:
    "16777216","16777471","AU","AUS","Australia"
    Немного посидев над С++ написал код конвертирующий формат:
    Код:
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <vector>
    
    using namespace std;
    
    vector<string> UTIL_Tokenize( string s, char delim )
    {
    	vector<string> Tokens;
    	string Token;
    
    	for( string :: iterator i = s.begin( ); i != s.end( ); i++ )
    	{
    		if( *i == delim )
    		{
    			if( Token.empty( ) )
    				continue;
    
    			Tokens.push_back( Token );
    			Token.clear( );
    		}
    		else
    			Token += *i;
    	}
    
    	if( !Token.empty( ) )
    		Tokens.push_back( Token );
    
    	return Tokens;
    }
    
    int main()
    {
    	setlocale(LC_ALL, "Russian"); 
    
    	cout << "Старт программы..." << endl;
    	
    	string infile = "IpToCountry.csv";
    
    	ifstream in;
    	in.open( infile.c_str( ) );
    
    	string outfile = "ip-to-country.csv";
    
    	ofstream out;
    	out.open( outfile.c_str( ), ios :: app );
    	
    	string Line;
    
    	if( in.fail( ) || out.fail( ) )
    	{
    		cout << "Ошибка открытия файла... завершение программы!" << endl;
    		return 0;
    	}
    
    	cout << "Начало конвертации... Ожидайте..." << endl;
    
    	while( !in.eof( ) )
    	{
    		getline( in, Line );
    
    		if( Line.empty( ) || Line.at(0) == '#')
    			continue;
    		else
    		{
    			vector<string> outstr;
    			outstr = UTIL_Tokenize( Line, ',' );
    
    			out << outstr.at(0) << ',' << outstr.at(1) << ',' << outstr.at(4) << ',' << outstr.at(5) << ',' << outstr.at(6) << endl;
    		}
    		
    		out.flush( );
    	}
    
    	cout << "Конвертация окончена... конечный файл: " << outfile << " , удаление файла: " << infile << endl;
    
    	in.close( );
    	out.close( );
    
    	remove( infile.c_str( ));
    }
    
    Файл IpToCountry.csv кидать рядом с скомпиленным вами *.exe файлом.
    Внимание! После успешной конвертации удаляет IpToCountry.csv !!!
    Max5 и dager нравится это.
  2. Military Парнишка с небывалым умом

    Сообщения:
    133
    Спасибы:
    2
    Сборка бота GHost:
    ghost++
    Дата начала использования бота:
    12.12.2012
    Skype:
    Мой статус
    а как установить?
  3. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    Хм... Вот тут всегда обновляется список ip-to-country.csv в нужном формате для бота =)
  4. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Вот именно. Диалс - пустодел :bIbIbIblya:
  5. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    (Last updated on December 14 2010)
    Мой за этот месяц.
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Даже если это так, но я не провял, я верю. Но я б по-старинке в пхп бы написал, как дедушка0диалс говорил :)
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Да да да... было это давно. PHP намного медленнее C++ и обрабатывал бы 11 тысяч строк очень долго.
    А C++ обрабатывает (у меня лично) за 5 секунд.
  8. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Я компилятор открываю медленнее чем акелпад)
  9. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    Эм... У меня проблема такое не лечится( я не знаю как скомпилировать программу) :bIbIbIblya:
    Что куда тыкать?)
  10. Military Парнишка с небывалым умом

    Сообщения:
    133
    Спасибы:
    2
    Сборка бота GHost:
    ghost++
    Дата начала использования бота:
    12.12.2012
    Skype:
    Мой статус
    как установить то? просто заменить файлик чтоли?
  11. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Спс, что не выложил готовый файл, теперь я умею создавать свои проекты :lol: ^^
  12. Military Парнишка с небывалым умом

    Сообщения:
    133
    Спасибы:
    2
    Сборка бота GHost:
    ghost++
    Дата начала использования бота:
    12.12.2012
    Skype:
    Мой статус
    Deals выложи готовый файл?
  13. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Арх, пусть бы люди чему-то сами научились. Поиск, компилить, создавать свой проект. Попривыкали все на халяву. И на серверах висят куча ботов с 'нубо' админами. Что даже вместо русских символов что-попало в приветствии. Зато у них новые цвс и прочие примочки...
  14. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Видимо кто-то посчитал так же как и вы, т.к. моё сообщение "вдруг" пропало. Ну да ладно. ^^
  15. QuIcK-KoT Ньюфаг

    Сообщения:
    24
    Спасибы:
    0
    Задам глупый вопрос: Код вставлять в includes.h?
  16. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    это отдельная программа.
  17. QuIcK-KoT Ньюфаг

    Сообщения:
    24
    Спасибы:
    0
    Т.е. нужно создать новый проект и скомпилить *.ехе?
  18. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Совершенно верно
  19. Zitri Давний приятель

    Сообщения:
    9
    Спасибы:
    0
    Сборка бота GHost:
    1.7.266
    обьясните школьнику что нужно делать конкретнеее пожалусто с ip-to-country.csv
  20. QuIcK-KoT Ньюфаг

    Сообщения:
    24
    Спасибы:
    0
    Запускаешь VC++: Файл->Создать->Проект(Ctrl+Shift+N), выбираешь в Visual C++->CLR->Пустой проект CLR. Затем Next, ставишь галочку Empty project и Finish. Затем клацаем правой кнопкой мыши(слева на любой папке)->Добавить-создать элемент(Ctrl+Shift+A), затем Visual C++->Файл C++(.cpp). Затем можешь кинуть свой код в .cpp -> нажимаешь F5 и всё)