[SOLUCIONADO] Checkear emails validos

Iniciado por zzzz, Diciembre 09, 2019, 04:26:01 PM

Tema anterior - Siguiente tema

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

Diciembre 09, 2019, 04:26:01 PM Ultima modificación: Diciembre 15, 2019, 04:48:47 PM por DtxdF
"Buenos dias, queria saber si hay alguna forma de checkear en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta los emails validos, con esto quiero decir, que tengo una cuenta gmx en el cual me falta 3 caracteres por rellenar, y queria crear un script para que checkea estas 3 posibles combinacions desde la 0-9 a-z, si alguien me puede pasar una guia o el script hecho lo apreciaria. Gracias"

Bueno basicamente he creado 2 archivos uno json y otro python, he generado un diccionario con crunch de 3 caracteres cada uno, el Request URL: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta es este en cual se puede ver que emails estan validos y cuales no.
AHora lo que me queda es el codigo.


El enlace que pones es incorrecto.


Jugar o perder

Para solo permitir letras y números puedes fijarte que matchee con la expresion regular:

/[A-Za-z0-9]+/

Por otro lado creo que puedes darle la especificación de solo letras y números a crunch en lugar de crear todo y después filtrarlo.

Saludos,


Creo que ya entendí, tu quieres mandarle los valores automáticamente y que te diga si están disponibles..
Este es el método post que envía en mi caso:

Código: php

POST /email-alias/availability HTTP/1.1
Host: onereg-email-suggest.gmx.com:443
Accept: application/json, text/plain, */*
Authorization: Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6ImJ2aUZsOElzbVdRVGowQ1RXWHRhRjZTRkxDb1NTYlp1S1hLY0hzYmcwQ0JJekFTSkRZazNkYXhKM3ZNcVJLMEdVUzhrVnRKSHJtMlpJNHlHc1diMXZ1Q1ZCd1J5SHU0MU9FV2lxV0lFUkRvUkJ0QXlYLV9hLWtKWXZ6TkJqdUZBN196WmNrNlRsaEY4LXFZZmU3eFJHVjlMQ25RbzZXN3h3T2lNZDZQdEJ4VSIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiMjJhNTc4YTMiLCJleHAiOjE1NzYwOTkxNDYyOTIsIml2IjoiU1NlYWpVNHNGTG1FdkdjalVwUVJVQSIsImlhdCI6MTU3NjA5MTk0NjI5MiwidmVyc2lvbiI6Mn0.IJhoJVmV3fae8sI7ZCkeEGoomMnBQzdNlbuCVgRqxf0
Content-Type: application/json
Origin: https://signup.gmx.com
User-Agent: Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36
X-CCGUID: dbf115df-3393-4f60-97d1-6df5cfd3d57d
X-REQUEST-ID: be594052-5f5d-4474-a753-4ac822a5a1e4
X-UI-APP: @umreg/registration-app2/5.9.1

HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://signup.gmx.com
Cache-Control: no-cache, proxy-revalidate
Connection: close
Content-Length: 127
Content-MD5: THSL4VpC/AITAoELgz1OmQ==
Content-Type: application/json;charset=utf-8
Date: Wed, 11 Dec 2019 19:23:35 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
X-Content-Type-Options: nosniff
X-REQUEST-ID: be594052-5f5d-4474-a753-4ac822a5a1e4
X-UI-PROVIDED-IDENTITY: [email protected]
X-UI-VERSION: 2.5.25/2.5.25


No se si use alguna variable de session, por las dudas si queires ver tus métodos POST más fácil que en network del developer tools, instala el HTTP Live headers.

Bueno quedaría que envíes un método post similar desde tu aplicación

Ya que tu creaste el JSON y estas con python chequea esto:

Código: python

import json
import urllib2

data = {
        'ids': [12, 3, 4, 5, 6]
}

req = urllib2.Request('http://example.com/api/posts/create')
req.add_header('Content-Type', 'application/json')

response = urllib2.urlopen(req, json.dumps(data))


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos,

Diciembre 12, 2019, 01:25:58 AM #4 Ultima modificación: Diciembre 12, 2019, 09:02:50 AM por Solid Water
Ese error es por que tu no importas request, y declaras un string con nombre request, y luego llamas al método post de request, y request no es tu objeto request es un string.

Al igual que esa concatenación de password que haces y nunca declaraste password como nada..
Creo que ahí querías concatenera 'email' y de todas formas falta el @

Me voy a descansar.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Saludos,

Diciembre 12, 2019, 02:28:04 AM #5 Ultima modificación: Diciembre 12, 2019, 09:02:06 AM por Solid Water
Es requests con s te lo dije mal, si mira el link.

Fijate si no tenes que instalar algo.

Saludos,

Diciembre 12, 2019, 02:14:48 PM #6 Ultima modificación: Diciembre 12, 2019, 02:16:38 PM por DtxdF
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Es requests con s te lo dije mal, si mira el link.

Fijate si no tenes que instalar algo.

Saludos,

Exacto, lo que se refiere "Solid Water", es la librería "requests", que puede instalar de la siguiente forma:

Python 2:

Código: bash
python -m pip install requests


Python 3:

Código: bash
python3 -m pip install requests


¿Cómo se usa?

De la siguiente forma:

Código: python
# -*- coding: UTF-8 -*-
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.
#  Sí va quiere descodificar
#  Coloque la codificación UTF-8 en la primera linea, si es que va a ejecutar el script en Python 2

import requests # La libreria 3:-)

arg = open('email.json', 'r')
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={'nld{}@gmx.com'.format(email)} ) # Sí va a enviar una petición por el metodo "GET",
                                                                     # pero en caso de qué no, sólo cambie "get" por "post".
                                                                     # Ejemplo:
                                                                     #   >>> requests.post(...)
    content = http.text # Lo cambio a text para evitar una incompatibilidad con Python ( 3 )

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")


Pude notar, que sea cual sea el método que se utilice, siempre va a dar el código de estado "403".

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Diciembre 12, 2019, 11:50:18 PM #7 Ultima modificación: Diciembre 13, 2019, 12:09:18 AM por DtxdF
@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ok. Disculpe, me falto una cosa.

Vamos por partes.

Primero me falto incluir el método ".encode( )" en el envío de los datos. Aquí está el código modificado:

Código: python
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.

import requests # La libreria 3:-)

arg = open("email.json", "r")
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={('nld{}@gmx.com'.format(email)).encode()}) # Sí va a enviar una petición por el metodo "GET",
                                                                               # pero en caso de qué no, sólo cambie "get" por "post".
                                                                               # Ejemplo:
                                                                               #   >>> requests.post(...)
    content = http.text

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")



La salida sería:

Código: bash
python3 test.py
Available


PD: Ahora sólo funciona para Python 3, Python 2 me está generando un error con el paquete «pyssl»

Segundo, ésta es la forma en que se instala "Pip":

Espero esté usando un sistema operativo *nix, porque lo haré desde uno:

Código: bash
sudo apt-get install python3-pip


Eso instalaría "Pip" para Python 3 usando "apt-get" (El gestor de paquetes).

También puede optar por hacerlo con el mismo Python, pero esta vez descargaremos una utilidad llamada "get-pip". Puede encontrarla, así como su forma de instalación en: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Actualizado:

OJO: Quiero aclarar (cómo desde un principio), que el código de estado es "403" (No tiene permiso para ingresar a este recurso) y el contenido del cuerpo está vacio. Por lo tanto siempre le dira "Available" ¿Por qué?, porque en el mensaje que usted coloca «This choice of email address has already been assigned» contiene espacios y al compararlo con una cadena vacia, siempre le dará «False». Creo que esa API (Sí es que es una), no está en función; es mejor que usé expresiones regulares siguiendo el estándar para las direcciones de correos electrónicos.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Diciembre 13, 2019, 08:26:26 AM #8 Ultima modificación: Diciembre 13, 2019, 08:51:00 AM por DtxdF
@xne7esk

Bueno, no he visto si es o no una API, sí me dice donde se entero de su existencia, mejor, ya que mayormente esas APIs tienen documentación.

Respecto al código, funciona perfecto, a lo que me refiero que no está del todo bien, es la respuesta que le dá el servidor. Ejecute este código, verá que ahora se muestra tal cual la respuesta y el código de estado:

Código: python
# Notas:
#  Elimine, muchas cosas; cómo la librería json, no está usandola, igualmente que otras librerias.

import requests # La libreria 3:-)

arg = open("email.json", "r")
url = 'https://onereg-email-suggest.gmx.com/email-alias/availability'

for line in arg:
   
    email = line.strip()
    http = requests.get( url, data={('nld{}@gmx.com'.format(email)).encode()}) # Sí va a enviar una petición por el metodo "GET",
                                                                               # pero en caso de qué no, sólo cambie "get" por "post".
                                                                               # Ejemplo:
                                                                               #   >>> requests.post(...)
    content = http.text

    print("Respuesta: {}".format(repr(content)))
    print("Código de Estado: {}".format(http.status_code))

    if "This choice of email address has already been assigned" in content:
            print("Not available")
            break
    else:
         print("Available")


CitarA que te refieres aqui? cambiar el codigo para poder introducir los datos de otra forma? y como se podria hacer eso?

Me refiero a que siga el estándar o las reglas para describir un correo electrónico válido. Cómo pueden ser:


  • La parte local no puede exceder los 64 caracteres.
  • La parte del dominio no puede ser más de 255 caracteres.
  • Caracteres cómo: letras acentuadas, caracteres de control (CTRL + tecla del teclado), los signos especiales como ()<>@,;:"[]ç%& y los espacios

A lo que me refiero con la parte local es antes del arroba (@) y la parte del dominio después de éste; sumando todo, le dá una longitud de 319 + el arroba 320.

Puede ver mucha más información en los "RFC".

PD: Algunos servicios no siguen del todo estos estandares.

Siguiendo todo lo dicho anteriormente, puede verificarlo con expresiones regulares; en python se utiliza la librería "re".

Ejemplo:

Código: python
import re
import sys

regex = "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
argv = sys.argv[1:]

if (len(argv) >= 1):

    if (re.match(regex, argv[0])):

        print("¡Válido!")
        sys.exit(0)

    else:
       
        print("Inválido ...")
        sys.exit(1)

else:

    print("Sintaxis: {} <Email a verificar>".format(sys.argv[0]))
    sys.exit(1)


El pedazo de código usaria expresiones regulares para verificar una dirección de correo electrónico siguiendo los estandares, pero cómo le dije antes, hay veces en que los servicios se salen un poco de lo correcto; cómo gmx que exigé 3 caracteres minimos para parte local.

Así es cómo sería el código para verificar lo que usted desea:

Código: python
import re
import sys

regex = "^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"
argv = sys.argv[1:]

if (len(argv) >= 1):

    if (re.match(regex, argv[0])):

        if (len(argv[0].split("@")[0]) >= 3):

            print("¡Válido!")
            sys.exit(0)

        else:

            print("No es válido para GMX ...")

    else:
       
        print("Inválido ...")
        sys.exit(1)

else:

    print("Sintaxis: {} <Email a verificar>".format(sys.argv[0]))
    sys.exit(1)


Espero le sirva  ;) ...

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Diciembre 13, 2019, 10:07:11 AM #9 Ultima modificación: Diciembre 13, 2019, 10:30:16 AM por Solid Water
Pues si que ha sido de gran ayuda DtxdF.
No estoy en linux por lo que no puedo probarlo aunque me gustaría.
Solo agregar que prueben el método POST, ya que la web probablemente este en php y este toma el post y el get con distintas variables, no así como perl, que con las bibliotecas comunes le es indistinto.

Saludos,

CaraCOLES, me falto mencionar a los métodos.

Lo probé siguiendo los dos métodos, dá el mismo resultado "403" cómo estado y el cuerpo vacio :/

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Al parecer es por el Access-Control-Allow-Origin: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

me está tirando 401 desde C#.

Solid Water, ¿Le está pidiendo credenciales?, traté de hacerlo desde el navegador con los mismos valores en los encabezados que usó en C#, porque 401 es que requiere autenticación.

PD: Sí puede, deje el código

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

CitarAhora entiendo, entonces esto ocurre ya que el codigo no sigue las reglas estandars del servicio...

No, como le dije, el código está bien, es el servicio que no está en función; el motivo es desconocido.

CitarHe probado los otros dos codigos y me imprime: Sintaxis: {} <Email a verificar...

Use el último código del último comentario, este se adapta a GMX. Un ejemplo de su uso:

Código: bash
python3 <nombre del script>.py [email protected]


No es muy diferente al segundo código del último comentario, pero verifica que la parte local ( <parte local>@No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.com ), sea más de tres caracteres y además verifica que sea una dirección de correo electrónico que se acerque al estándar.

Ha sido un placer ayudarle.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF

Diciembre 15, 2019, 08:48:11 AM #14 Ultima modificación: Diciembre 15, 2019, 04:47:53 PM por DtxdF
Hola @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta.

La verdad, vi cuando usted publico el último mensaje a los segundos y sin dudarlo fui a responder, escribiendo, pare y me pregunte: "¿El servicio no usa una API?", lo digo porque el que válida la existencia de una dirección en tiempo real debe estar implicado "WebSockets" o "Ajax".

Pues sí, así es, utiliza Ajax para hacerlo y de hecho, la dirección URL es la misma que usted puso al principio "No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Lo busqué depurando un poco, pero tuve algunos problemas y aquí mis conjeturas.

Al depurar observe que la página está diseñada para hacer una petición Ajax a la dirección anteriormente mostrada, posteriormente la API se comportaria según los datos enviados. Los que yo envié en esa sesión son:

Encabezados:

Código: python
headers = {

    'User-Agent':'Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0',
    'Accept':'application/json, text/plain, */*',
    'Accept-Language':'es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3',
    'Authorization':'Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6Ikd2VWgyMVh2NEZEdmY2dnZhNWpLM09scnlpd2dNa01FaXZoWmRuNkduXy0xeGpiaUlEb1k0eXI1VE1DYjBfQTdMYy1rQ2xqZnYxR1lsQ20wc3ZWN0FIRXNOUFVZbEdnekw1ZEREYlpHSlRqSTlhZUxuZXZpVUwtaXc1QVpZZ0NkSGlwckphcDRpOXlSUnFtYU1GWVhvVkozdG01M0Y0aE5JVVF3bV9ZWnJaMCIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNWFmZjhlMTciLCJleHAiOjE1NzYyOTQ5OTQyNDgsIml2IjoicWdXOVBjekM1eThKWW0tU2dURGs0ZyIsImlhdCI6MTU3NjI4Nzc5NDI0OCwidmVyc2lvbiI6Mn0.L7UNHdDSelRBclCp8FPqJd3kPadDA4K5C2uoGe9b-c4',
    'X-UI-APP':'@umreg/registration-app2/5.9.1',
    'X-CCGUID':'56c2cfb3-789d-4a38-afc2-0e49ffe318d6',
    'X-REQUEST-ID':'1e58a517-37e6-4e6f-961b-fa1f8aa2e9e4',
    'Content-Type':'application/json',
    'Origin':'https://signup.gmx.com',
    'Connection':'keep-alive',
    'Referer':'https://signup.gmx.com/',

}


Datos por el método POST:

Código: python
data = {
       
    "emailAddress":"[email protected]",
    "countryCode":"US",
    "suggestionProducts":["gmxcomFree"],
    "maxResultCountPerProduct":"10",
    "mdhMaxResultCount":"5",
    "requestedEmailAddressProduct":"gmxcomFree"

}


Mientras que en CURL sería un poco diferente:

Código: bash
curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Authorization: Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6Ikd2VWgyMVh2NEZEdmY2dnZhNWpLM09scnlpd2dNa01FaXZoWmRuNkduXy0xeGpiaUlEb1k0eXI1VE1DYjBfQTdMYy1rQ2xqZnYxR1lsQ20wc3ZWN0FIRXNOUFVZbEdnekw1ZEREYlpHSlRqSTlhZUxuZXZpVUwtaXc1QVpZZ0NkSGlwckphcDRpOXlSUnFtYU1GWVhvVkozdG01M0Y0aE5JVVF3bV9ZWnJaMCIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNWFmZjhlMTciLCJleHAiOjE1NzYyOTQ5OTQyNDgsIml2IjoicWdXOVBjekM1eThKWW0tU2dURGs0ZyIsImlhdCI6MTU3NjI4Nzc5NDI0OCwidmVyc2lvbiI6Mn0.L7UNHdDSelRBclCp8FPqJd3kPadDA4K5C2uoGe9b-c4' -H 'X-UI-APP: @umreg/registration-app2/5.9.1' -H 'X-CCGUID: 56c2cfb3-789d-4a38-afc2-0e49ffe318d6' -H 'X-REQUEST-ID: 1e58a517-37e6-4e6f-961b-fa1f8aa2e9e4' -H 'Content-Type: application/json' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -H 'Referer: https://signup.gmx.com/' --data '{"emailAddress":"[email protected]","countryCode":"US","suggestionProducts":["gmxcomFree"],"maxResultCountPerProduct":"10","mdhMaxResultCount":"5","requestedEmailAddressProduct":"gmxcomFree"}'


Tuve algunos problemas no sé sí es que me bloquearon o es mis velocidades de conexión.

Alternativamente a la explicacion he creado un pequeño script en bash:

Código: bash
#!/usr/bin/env bash

declare -a params=($*)
declare -x email;

if [ ${#params[@]} -ne 1 ];then

echo -e "Sintaxis: ${params[0]} <Dirección de correo electrónico>"
exit 1

else

email=${params[0]}

fi

echo -e "Primera Petición:"

curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -X OPTIONS -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Access-Control-Request-Method: POST' -H 'Access-Control-Request-Headers: authorization,content-type,x-ccguid,x-request-id,x-ui-app' -H 'Referer: https://signup.gmx.com/' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -i

echo -e "Segunda Petición:"

curl 'https://onereg-email-suggest.gmx.com/email-alias/availability' -H 'User-Agent: Mozilla/5.0 (X11; Linux i686; rv:71.0) Gecko/20100101 Firefox/71.0' -H 'Accept: application/json, text/plain, */*' -H 'Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3' --compressed -H 'Authorization: Bearer qXeyJhbGciOiJIUzI1NiJ9.eyJjdCI6ImZhN0NOQlRlQkgtOWg4NmtMTndJbXB6ZXJYX0hlcElTNjJVWEVXQ1ppNjVnSDdnZ0s2YWpxdkt2dTdzVkNPbUMwc3pGRkVTVEI0Y01hNkdfYnFUekNGa2JXUFVtRjVHMGJob1ljaFhLLXl3OUZVcmVpMzFRNVlqdUgxMFlrX09KQTR4dExlQmY4R2k0TUlzMU9CRkRGckxHUlAzLVJMT2FFRVJuTjlVVG8zbyIsInNjb3BlIjoicmVnaXN0cmF0aW9uIiwia2lkIjoiNzllZjg4YTkiLCJleHAiOjE1NzY0MTUzNDY2NTYsIml2IjoiNjVCTmJlWWw1MWVhU041VEpROTdlUSIsImlhdCI6MTU3NjQwODE0NjY1NiwidmVyc2lvbiI6Mn0.CWcOW0NVyUKpJG0cM0rMjAxewJh6LatdTXo9Vj0uO7Y' -H 'X-UI-APP: @umreg/registration-app2/5.9.1' -H 'X-CCGUID: b0846f29-1527-4142-bb51-600d2864f070' -H 'X-REQUEST-ID: 40adec1b-bd05-4920-b74f-9ecf198b17f1' -H 'Content-Type: application/json' -H 'Origin: https://signup.gmx.com' -H 'Connection: keep-alive' -H 'Referer: https://signup.gmx.com/' --data '{"emailAddress":"'$email'","countryCode":"US","suggestionProducts":["gmxcomFree"],"maxResultCountPerProduct":"10","mdhMaxResultCount":"5","requestedEmailAddressProduct":"gmxcomFree"}' -i


OJO: No sé cuánto dure la funcionalidad del script, ya que hay que cambiar algunos parámetros y no he hecho muchas pruebas, cómo le dije por mis conexiones nefastas.

El modo de ejecución es el siguiente: bash <nombre del script>.sh <dirección del correo electrónico>

Ejemplo:

Código: bash
bash GMXXXChecker.sh [email protected]


La salida seria:

Código: text
Primera Petición:
HTTP/1.1 200 OK
Date: Sun, 15 Dec 2019 11:39:34 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Access-Control-Allow-Origin: https://signup.gmx.com
Access-Control-Allow-Credentials: true
Vary: Origin
Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS
Access-Control-Allow-Headers: authorization,content-type,x-ccguid,x-request-id,x-ui-app
Content-Length: 0
Connection: close

Segunda Petición:
HTTP/1.1 200 OK
Date: Sun, 15 Dec 2019 11:39:47 GMT
Server: Apache
Strict-Transport-Security: max-age=31536000; includeSubDomains
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: https://signup.gmx.com
Vary: Origin
X-UI-VERSION: 2.5.25/2.5.25
X-UI-PROVIDED-IDENTITY: [email protected]
Content-MD5: k3V8C6dWKPHVMwlgVDCKpw==
cache-control: no-cache
X-REQUEST-ID: 40adec1b-bd05-4920-b74f-9ecf198b17f1
X-Content-Type-Options: nosniff
Content-Length: 292
Connection: close
Content-Type: application/json;charset=utf-8

{"requestedEmailAddress":"[email protected]","emailAddressAvailable":false,"suggestedEmailAddresses":{"gmxcomFree":["[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]","[email protected]"]},"mdhSuggestions":[]}


Me preocupa el hecho de que un atacante pueda confirmar con una lista de direcciones sí existen o no en este servicio  :(, pero creo que lo que hice podria cambiar al servicio (creo); También eso solucionaria el problema de @xne7esx, pero igual no se fie del script hay que cambiar algunas cosas manualmente por cada sesión y no sé sí funcione cuando usted lo pruebe, pero yo le recomiendo que aprenda Python y Selenium.

~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF