
Biblioteca de Python para consultar con precisión el uso de nombres de usuario y correos electrónicos en plataformas en línea.
socialscan ofrece comprobaciones precisas y rápidas del uso de direcciones de correo electrónico y nombres de usuario en plataformas en línea.
Dada una dirección de correo electrónico o un nombre de usuario, socialscan devuelve si está disponible, ocupado o no es válido en plataformas en línea.
Características que diferencian a socialscan de herramientas similares (por ejemplo, knowem.com, Namechk y Sherlock):
100% de precisión: el método de consulta de socialscan elimina los falsos positivos y negativos que a menudo ocurren en herramientas similares, asegurando que los resultados sean siempre precisos.
Velocidad: socialscan utiliza asyncio junto con aiohttp para realizar todas las consultas de forma concurrente, proporcionando búsquedas rápidas incluso con consultas masivas que involucran cientos de nombres de usuario y direcciones de correo electrónico. En un ordenador de prueba con especificaciones medias y velocidad de Internet, se ejecutaron 100 consultas en ~4 segundos.
Biblioteca / CLI: socialscan se puede ejecutar a través de una CLI, o importarse como una biblioteca de Python para usarse con código existente.
Soporte de correo electrónico: socialscan admite consultas tanto para direcciones de correo electrónico como para nombres de usuario.
Actualmente se admiten las siguientes plataformas:

Otras herramientas similares verifican la disponibilidad del nombre de usuario solicitando la página de perfil del nombre de usuario en cuestión y, basándose en información como el código de estado HTTP o el texto de error en la página solicitada, determinan si un nombre de usuario ya está ocupado. Este es un enfoque ingenuo que falla en los siguientes casos:
Palabras clave reservadas: La mayoría de las plataformas tienen un conjunto de palabras clave que no permiten usar en nombres de usuario. (Una prueba simple: intente verificar palabras reservadas como 'admin' o 'home' o 'root' y vea si otros servicios las marcan como disponibles).
Cuentas eliminadas/baneadas: Los nombres de usuario de cuentas eliminadas/baneadas tienden a no estar disponibles aunque las páginas de perfil puedan no existir.
Por lo tanto, estas herramientas tienden a generar falsos positivos y negativos. Este método de verificación también depende de que las plataformas tengan páginas de perfil basadas en la web y no se puede extender a direcciones de correo electrónico.
socialscan tiene como objetivo cerrar estas brechas consultando directamente los servidores de registro de las plataformas, recuperando los tokens CSRF, encabezados y cookies apropiados.
> pip install socialscan
> git clone https://github.com/iojw/socialscan.git
> cd socialscan
> pip install .
usage: socialscan [list of usernames/email addresses to check]
optional arguments:
-h, --help show this help message and exit
--platforms [platform [platform ...]], -p [platform [platform ...]]
list of platforms to query (default: all platforms)
--view-by {platform,query}
view results sorted by platform or by query (default:
query)
--available-only, -a only print usernames/email addresses that are
available and not in use
--cache-tokens, -c cache tokens for platforms requiring more than one
HTTP request (Snapchat, GitHub, Instagram. Lastfm &
Tumblr), reducing total number of requests sent
--input input.txt, -i input.txt
file containg list of queries to execute
--proxy-list proxy_list.txt
file containing list of HTTP proxy servers to execute
queries with
--verbose, -v show query responses as they are received
--show-urls display profile URLs for usernames on supported platforms
(profiles may not exist if usernames are reserved or belong to deleted/banned accounts)
--json json.txt output results in JSON format to the specified file
--version show program's version number and exit
socialscan también se puede importar en código existente y usarse como biblioteca.
v1.0.0 introduce el método asíncrono execute_queries y el envoltorio síncrono correspondiente sync_execute_queries que toma una lista de consultas y una lista opcional de plataformas y proxies, ejecutando todas las consultas de forma concurrente. El método luego devuelve una lista de resultados en el mismo orden.
from socialscan.util import Platforms, sync_execute_queries
queries = ["username1", "[email protected]", "[email protected]"]
platforms = [Platforms.GITHUB, Platforms.LASTFM]
results = sync_execute_queries(queries, platforms)
for result in results:
print(f"{result.query} on {result.platform}: {result.message} (Success: {result.success}, Valid: {result.valid}, Available: {result.available})")
Output:
username1 on GitHub: Username is already taken (Success: True, Valid: True, Available: False)
username1 on Lastfm: Sorry, this username isn't available. (Success: True, Valid: True, Available: False)
[email protected] on GitHub: Available (Success: True, Valid: True, Available: True)
[email protected] on Lastfm: Sorry, that email address is already registered to another account. (Success: True, Valid: True, Available: False)
[email protected] on GitHub: Available (Success: True, Valid: True, Available: True)
[email protected] on Lastfm: Looking good! (Success: True, Valid: True, Available: True)
Para consultas masivas con la opción --input, coloque un nombre de usuario/correo electrónico en cada línea del archivo .txt:
username1
[email protected]
username3
Si esta herramienta te resulta útil y deseas apoyar su desarrollo continuo, puedes donar aquí. Gracias por tu apoyo.
BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f
¿Errores, sugerencias o deseas añadir un sitio? Envía un issue.
Las PR siempre son bienvenidas 🙂
Por favor, asegúrate de que el código está formateado con black usando la configuración en pyproject.toml antes de enviar una PR.
MPL 2.0
| Nombre de usuario | Correo electrónico |
|---|
| ✔️ | ✔️ | |
| ✔️ | ✔️ | |
| GitHub | ✔️ | ✔️ |
| Tumblr | ✔️ | ✔️ |
| Lastfm | ✔️ | ✔️ |
| Snapchat | ✔️ | |
| GitLab | ✔️ | |
| ✔️ | ||
| Yahoo | ✔️ | |
| ✔️ | ||
| Firefox | ✔️ |