Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Código PHP] Pequeña "Api" de verificación de email

  • 0 Respuestas
  • 2347 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado HckDrk

  • *
  • Underc0der
  • Mensajes: 55
  • Actividad:
    0%
  • Reputación 0
  • http://127.0.0.1
    • Ver Perfil
    • HckDrk
« en: Diciembre 03, 2017, 02:06:46 pm »
Buenas!!

Después de muchos años de no postear algo, hoy vengo a hacerlo XD. Estaba aburrido y me puse a hacer esta pequeña api.

Este es básicamente un complemento al articulo del compañero "Arthusu" llamado  Escaner Masivo de Correos

Básicamente se trata de una muy sencilla API Restful, en donde valida si la sintaxis del correo es correcta, si el dominio exista, si el dominio tiene registros MX y como Plus le coloque el famoso: "quisiste decir correo@hotmail.com".

Esta pequeña api consta de 2 archivos: el "index.php" y el "quisiste_decir.php"

En el index hace llamado del archivo "quisiste_decir.php" y hace las validaciones de sitaxis, dominio y registros MX:

Código: PHP
  1. <?php
  2. include('quisiste_decir.php');
  3. $correo = (trim($_REQUEST['correo'])=='') ? "contacto@underc0de.org" : strip_tags($_REQUEST['correo']);
  4. $hosts=array();
  5. $error='no';
  6.  
  7. if(filter_var($correo,FILTER_VALIDATE_EMAIL)){
  8.  
  9.         $sintaxis = 'Correcta';
  10.  
  11.         $dominio=explode("@",$correo);
  12.         if(checkdnsrr($dominio[1])){
  13.        
  14.                 $dominio_existe = 'existe';
  15.        
  16.                 if(getmxrr($dominio[1],$hosts)){
  17.                         $mensaje = 'el correo es valido, existe el dominio, y tiene registros MX. Muy probablemente existe el correo';
  18.                         $registro_mx = 'existe';
  19.                 }else{
  20.                        
  21.                         $mensaje = 'Existe el dominio, pero no tiene registros MX, por lo cual no creemos que exista el correo';
  22.                         $registro_mx = 'No existe';
  23.                         $error = 'si';
  24.                 }
  25.         }else{
  26.        
  27.                 $quisiste_decir = quisiste_decir($correo);
  28.                 $mensaje = 'No existe el dominio';
  29.                 $dominio_existe = 'No existe';
  30.                 $error = 'si';
  31.         }
  32.        
  33. }else{
  34.         $quisiste_decir = quisiste_decir($correo);
  35.         $mensaje = 'el correo no tiene la sintaxis correcta';
  36.         $sintaxis= 'Incorrecta';
  37.         $error = 'si';
  38. }
  39.  
  40. header('Content-Type: application/json');
  41. $json = array('error' => $error, 'quisiste_decir' => $quisiste_decir, "usuario" => $dominio[0], 'dominio' => $dominio[1], 'sisntaxis' => $sintaxis, 'dominio_existe' => $dominio_existe, 'registro_mx' => $registro_mx, 'valor_registro_mx' => $hosts, 'mensaje' => $mensaje);
  42. echo json_encode($json,JSON_PRETTY_PRINT);
  43.  
  44. ?>
  45.  

y el archivo "quisiste_decir.php" que comprueba que el correo ingresado tenga coincidencias erroneas con los principales  correos gmail, hotmail, yahoo.

Código: PHP
  1. <?php
  2.  
  3. function buscar_hotmail($correo){
  4.  
  5.         $find_hotmail = array('jot', 'holma', 'hotmil','hotmai', 'hotmaiI');
  6.         $dominio = explode("@",$correo);
  7.        
  8.         foreach($find_hotmail as $hotmail){
  9.        
  10.             if(strpos($dominio[1], $hotmail) !== false){
  11.                 $retorno = $dominio[0].'@hotmail.com';
  12.                 break;
  13.             }
  14.            
  15.         }
  16.        
  17.         if($retorno!=""){
  18.                 return $retorno;
  19.         }else{
  20.                 return false;
  21.         }
  22. }
  23.  
  24. function buscar_gmail($correo){
  25.  
  26.         $find_gmail = array('gmai', 'gmail', 'mail','gmal', 'gmail.co');
  27.         $dominio = explode("@",$correo);
  28.        
  29.         foreach($find_gmail as $gmail){
  30.        
  31.             if(strpos($dominio[1], $gmail) !== false){
  32.                 $retorno = $dominio[0].'@gmail.com';
  33.                 break;
  34.             }
  35.            
  36.         }
  37.        
  38.         if($retorno!=""){
  39.                 return $retorno;
  40.         }else{
  41.                 return false;
  42.         }
  43. }
  44.  
  45. function buscar_yahoo($correo){
  46.  
  47.         $find_yahoo = array('yajoo', 'yaho', 'yhoo','ahoo', 'yahoo.co');
  48.         $dominio = explode("@",$correo);
  49.        
  50.         foreach($find_yahoo as $yahoo){
  51.        
  52.             if(strpos($dominio[1], $yahoo) !== false){
  53.                 $retorno = $dominio[0].'@yahoo.com';
  54.                 break;
  55.             }
  56.            
  57.         }
  58.        
  59.         if($retorno!=""){
  60.                 return $retorno;
  61.         }else{
  62.                 return false;
  63.         }
  64. }
  65.  
  66. function quisiste_decir($correo){
  67.        
  68.         if(buscar_hotmail($correo)){
  69.        
  70.                 return  buscar_hotmail($correo);
  71.        
  72.         }else{
  73.        
  74.                 if(buscar_gmail($correo)){
  75.        
  76.                         return  buscar_gmail($correo);
  77.        
  78.                 }else{
  79.                
  80.                         if(buscar_yahoo($correo)){
  81.        
  82.                                 return  buscar_yahoo($correo);
  83.        
  84.                         }else{
  85.                                 return false;
  86.                         }
  87.                
  88.                 }
  89.        
  90.         }
  91.        
  92. }
  93.  
  94. ?>
  95.  

Lo pueden probar directamente en mi dominio http://pruebas.hckdrk.mx/valida_mail.php?correo=correo@correo.com el cual recibe 1 parametro llamado correo ya sea por post o por get.

Saludos!!!
« Última modificación: Diciembre 03, 2017, 02:17:16 pm por HckDrk »

 

¿Te gustó el post? COMPARTILO!



Script Clon de Youtube – Diseño 2012 – Codigo Abierto

Iniciado por zCronis

Respuestas: 1
Vistas: 2661
Último mensaje Marzo 06, 2013, 06:12:05 pm
por MAX_POWER
[Codigo fuente] Completo sistema de agencia inmobiliaria/arrendamiento en php

Iniciado por graphixx

Respuestas: 1
Vistas: 4089
Último mensaje Agosto 19, 2014, 09:09:42 am
por blackdrake
[DESCARGA DIRECTA] SISTEMA POS PRISMA + CODIGO FUENTE

Iniciado por graphixx

Respuestas: 3
Vistas: 3997
Último mensaje Septiembre 03, 2014, 07:25:52 pm
por graphixx
[CÓDIGO FUENTE. Ejemplo] Sistema de sorteos y boletas

Iniciado por graphixx

Respuestas: 0
Vistas: 2657
Último mensaje Marzo 04, 2018, 10:53:04 pm
por graphixx
[Código-PHP] SQLi Searcher V1 - JaAViEr

Iniciado por JaAViEr

Respuestas: 4
Vistas: 1655
Último mensaje Junio 05, 2011, 06:30:48 pm
por JaAViEr