
Libreria Python per interrogare accuratamente l'utilizzo di nomi utente ed email su piattaforme online
socialscan offre controlli accurati e veloci per la verifica di indirizzi email e username sulle piattaforme online.
Dato un indirizzo email o uno username, socialscan restituisce se è disponibile, occupato o non valido sulle piattaforme online.
Caratteristiche che distinguono socialscan da strumenti simili (es. knowem.com, Namechk e Sherlock):
100% di precisione: il metodo di interrogazione di socialscan elimina i falsi positivi e negativi che spesso si verificano in strumenti simili, garantendo che i risultati siano sempre accurati.
Velocità: socialscan utilizza asyncio insieme a aiohttp per eseguire tutte le query contemporaneamente, fornendo ricerche rapide anche con query in blocco che coinvolgono centinaia di username e indirizzi email. Su un computer di prova con specifiche medie e velocità Internet, 100 query sono state eseguite in ~4 secondi.
Libreria / CLI: socialscan può essere eseguito tramite CLI, o importato come libreria Python per essere utilizzato con codice esistente.
Supporto email: socialscan supporta query sia per indirizzi email che per username.
Le seguenti piattaforme sono attualmente supportate:

Altri strumenti simili verificano la disponibilità di uno username richiedendo la pagina del profilo dello username in questione e, basandosi su informazioni come il codice di stato HTTP o il testo di errore sulla pagina richiesta, determinano se uno username è già occupato. Questo è un approccio ingenuo che fallisce nei seguenti casi:
Parole chiave riservate: La maggior parte delle piattaforme ha un insieme di parole chiave che non consente di utilizzare come username (Un semplice test: provate a controllare parole riservate come 'admin' o 'home' o 'root' e vedete se altri servizi le segnalano come disponibili)
Account cancellati/bannati: Gli username di account cancellati/bannati tendono ad essere non disponibili anche se le pagine del profilo potrebbero non esistere
Pertanto, questi strumenti tendono a produrre falsi positivi e negativi. Questo metodo di verifica dipende anche dal fatto che le piattaforme abbiano pagine di profilo basate sul web e non può essere esteso agli indirizzi email.
socialscan mira a colmare queste lacune interrogando direttamente i server di registrazione delle piattaforme, recuperando i token CSRF, le intestazioni e i cookie appropriati.
> pip install socialscan
> git clone https://github.com/iojw/socialscan.git
> cd socialscan
> pip install .
usage: socialscan [list of usernames/email addresses to check]
argomenti opzionali:
-h, --help mostra questo messaggio di aiuto ed esci
--platforms [platform [platform ...]], -p [platform [platform ...]]
elenco delle piattaforme da interrogare (default: tutte le piattaforme)
--view-by {platform,query}
visualizza i risultati ordinati per piattaforma o per query (default: query)
--available-only, -a stampa solo username/indirizzi email che sono disponibili e non in uso
--cache-tokens, -c memorizza nella cache i token per piattaforme che richiedono più di una richiesta HTTP (Snapchat, GitHub, Instagram, Lastfm e Tumblr), riducendo il numero totale di richieste inviate
--input input.txt, -i input.txt
file contenente l'elenco di query da eseguire
--proxy-list proxy_list.txt
file contenente l'elenco di server proxy HTTP con cui eseguire le query
--verbose, -v mostra le risposte delle query man mano che vengono ricevute
--show-urls mostra gli URL dei profili per gli username su piattaforme supportate
(i profili potrebbero non esistere se gli username sono riservati o appartengono a account cancellati/bannati)
--json json.txt output dei risultati in formato JSON nel file specificato
--version mostra il numero di versione del programma ed esci
socialscan può anche essere importato in codice esistente e utilizzato come libreria.
v1.0.0 introduce il metodo asincrono execute_queries e il corrispondente wrapper sincrono sync_execute_queries che accetta un elenco di query e un elenco opzionale di piattaforme e proxy, eseguendo tutte le query contemporaneamente. Il metodo restituisce poi un elenco di risultati nello stesso ordine.
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)
Per query in blocco con l'opzione --input, inserisci uno username/email per riga nel file .txt:
username1
[email protected]
username3
Se trovi utile questo strumento e desideri supportare il suo sviluppo continuo, puoi donare qui. Grazie per il tuo supporto.
BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f
Errori, suggerimenti o vuoi che venga aggiunto un sito? Invia una segnalazione.
Le PR sono sempre benvenute 🙂
Assicurati che il codice sia formattato con black usando la configurazione in pyproject.toml prima di inviare una PR.
MPL 2.0
| Username |
|---|
| ✔️ | ✔️ | |
| ✔️ | ✔️ | |
| GitHub | ✔️ | ✔️ |
| Tumblr | ✔️ | ✔️ |
| Lastfm | ✔️ | ✔️ |
| Snapchat | ✔️ | |
| GitLab | ✔️ | |
| ✔️ | ||
| Yahoo | ✔️ | |
| ✔️ | ||
| Firefox | ✔️ |