Advertisement
Mayk0

#; Comprueba si el correo electrónico es real!

Jul 22nd, 2014
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.73 KB | None | 0 0
  1.  
  2. Code:
  3.  
  4. ###################### 0verCheck ###################
  5. # Coded by The X-C3LL (J.M. Fernández)             #
  6. # Email: overloadblog////hotmail////es             #
  7. # Blog: 0verl0ad.blogspot.com                      #
  8. # Twitter: https://twitter.com/TheXC3LL            #
  9. ######################  v0.1  ######################
  10.  
  11.  
  12. use Net::DNS;
  13. use IO::Socket;
  14. use Getopt::Long;
  15.  
  16. GetOptions(
  17.       "list=s"=> \$flag_list,
  18.       "email=s"=> \$flag_email
  19.          );
  20.  
  21.  
  22.  
  23. if ($flag_email) {
  24.    @correo = split("@", $flag_email);
  25.    $server = MX_it($correo[1]);
  26.    print $flag_email." -- ".check($server, $flag_email)."\n";
  27. }
  28.  
  29. if ($flag_list) {
  30.    open(FILE, "<", $flag_list);
  31.    @lista = <FILE>;
  32.    close(FILE);
  33.    foreach $account (@lista) {
  34.       chomp($account);
  35.       @correo = split("@", $account);
  36.       $server = MX_it($correo[1]);
  37.       print $account." -- ".check($server, $account)."\n";
  38.    }
  39. }
  40.  
  41. sub MX_it {
  42.    $domain = $_[0];
  43.    $resolver = Net::DNS::Resolver->new;
  44.    @mx = mx($resolver, $domain);
  45.    if (@mx) {
  46.       return $mx[0]->exchange;
  47.    } else {
  48.       return "ERROR MX Not Found";
  49.    }
  50. }
  51.  
  52. sub check {
  53.    $server = $_[0];
  54.    $account = $_[1];
  55.    @email = split("@", $account);
  56.    $socket = IO::Socket::INET->new(
  57.                PeerAddr => $server,
  58.                PeerPort => 25,
  59.                Proto => 'tcp'
  60.    );
  61.  
  62.    unless ($socket) { return "ERROR";}
  63.  
  64.    print $socket "HELO $email[1]\r\n";
  65.    $answer = <$socket>;
  66.    print $socket "MAIL FROM: <test@".$email[1].">\r\n";
  67.    $answer = <$socket>;
  68.    print $socket "RCPT TO: <".$account.">\r\n";
  69.    $answer = <$socket>;
  70.    $answer = <$socket>;
  71.    if ($answer =~ /250/) {
  72.       return "OK!";
  73.    } else {
  74.       return "FALSE!";
  75.    }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement