PDA

Просмотр полной версии : Smart proxymaker xD


awdrg
05.02.2009, 20:39
Занимался брутом, программу для получения свежих прокси не нашел. Извращался вручную, вырезая с сайтов списки и приводил к виду xxx.xxx.xxx.xxx:yyyy вручную. Решил упростить задачу и написал небольшую программу на С++ под консоль, которая выдирает из введенного текста все прокси и аккуратненько выводит в списочек, по 1 штуке в ряд. Код кривоват, ну короче смотрите сами =) Если массам понравится моя задумка, добавлю больше возможностей. Тестировалась преимущественно на http://www.samair.ru/proxy/
P.S тестил под linux консолью bash.
P.P.S Запускаете программу, ctrl+v список в нее и потом три раза Enter
P.P.P.S Пишите в комментах абсолютно все что думаете по этому поводу

#include <iostream>
using namespace std;
bool num(char arr[], int frst);
bool ip(char arr[], int first);
bool next(char arr[], int first);
char first_clean(char in[], char out[]);

main()
{
char ch='s';
int Break=0;
char *in = new char[30000];
char *out = new char[2000];
int arr = 0;
for (arr=0; ch!='\0',Break<3; arr++,Break--)
{
if (Break<-2)
Break = 0;
if (ch=='\n')
Break=Break+3;
cin.get(ch);
in[arr] = ch;
}
in[arr+1] = '\0';
cout << "--------------------" << endl;
first_clean(in,out);
cout << endl;
for (int k=0 ;out[k]!='\0' ;k++)
cout<< out[k];
return 0;
}

bool num(char arr[], int num)
{
int f;
f = arr[num];
if (( f>=48 ) and (f <=59 ))
return true;
else return false;
}

bool ip(char arr[], int first)
{
if ((num(arr,first+1) == false) or (num(arr,first-1) == false))
return false;
for (int x = 4; x<=11;x++)
{
if (arr[first+x]=='\n')
return false;
if (arr[first+x]=='.')
return true;
}
return false;
}

bool next(char arr[], int first)
{
if ((num(arr,first)) or (arr[first] == '.'))
return true;
else return false;
}

char first_clean(char in[], char out[])
{
int x=0,m=0;
for (int z = 0; in[z]!='\0';z++)
{
if ((ip(in,z) == true) and ((num(in,z+1)==true) and (num(in,z-1)==true)))
{
if (num(in,z-3) == true)
{
for (int y = z-3; next(in,y); y++,z++,m++)
{
cout << in[y];
if (next(in,y) == true)
out[m] = in[y];
}
cout << endl;
out[++m] = '\n';m++;
}
if (num(in,z-2)==true)
{
for (int y = z-2; next(in,y);y++,z++,m++)
{
cout << in[y];
if (next(in,y) == true)
out[m] = in[y];
}
cout << endl;
out[++m] = '\n';m++;
}
if (num(in,z-1)==true)
{
for (int y = z-1; next(in,y);y++,z++,m++)
{
cout << in[y];
if (next(in,y) == true)
out[m] = in[y];
}
cout << endl;
out[++m] = '\n';m++;
}
}
out[++m] = '\0';
}
return out[0];
}

LEE_ROY
05.02.2009, 20:44
Forum Proxy Leecher соберет и прочекает, а парсинг прокси из текста пишетсо на пхп регуляркой в пару строк. Готовых решений море.

CrazyStudentS_Mi}{
05.02.2009, 22:29
hrefer в руки и собирай прокси

vikseriq
06.02.2009, 00:12
Поддерживаю про регулярки. Таже если там сильно мутная база, можно брать образцы (т.е. скорее всего порт будет 8080, а не 6666, и т.д.)
Добавить бы - автопереводка domain.net в ip - некоторые прокси-листы такие )
* Код первого поста не тестил. Юзаю фильтр и чекер на freeproxy.ru )

awdrg
06.02.2009, 00:18
а где можно найти скрипт для hrefer'a (engine.php)? Тот что по умолчанию, не работает. Гугл не спас

CePry4oB
06.02.2009, 00:23
2 пост абсолютно прав..

awdrg
06.02.2009, 00:33
все, с hrefer'om разоюрался сам