All Projects → iojw → Socialscan

iojw / Socialscan

Licence: mpl-2.0
Python library and CLI for accurately querying username and email usage on online platforms

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Socialscan

Mosint
An automated e-mail OSINT tool
Stars: ✭ 184 (-65.8%)
Mutual labels:  osint, email, social-media
Oblivion
Data leak checker & OSINT Tool
Stars: ✭ 237 (-55.95%)
Mutual labels:  osint, email
Karma
Find leaked emails with your passwords
Stars: ✭ 154 (-71.38%)
Mutual labels:  osint, email
Sherlock
🔎 Hunt down social media accounts by username across social networks
Stars: ✭ 28,569 (+5210.22%)
Mutual labels:  cli, osint
Tia
Your Advanced Twitter stalking tool
Stars: ✭ 98 (-81.78%)
Mutual labels:  osint, social-media
Osint San
Framework для сбора данных из открытых источников. В Framework используется большое количество API, их необходимо зарегистрировать самому.​
Stars: ✭ 99 (-81.6%)
Mutual labels:  osint, social-media
Iky
OSINT Project
Stars: ✭ 203 (-62.27%)
Mutual labels:  osint, email
Sherlock Js
Find usernames across over 170 social networks - Fast & flexible remake of sdushantha/sherlock
Stars: ✭ 153 (-71.56%)
Mutual labels:  cli, osint
Cli
Get a programmable email address. Automate what happens when you receive emails. It's like Zapier for devs who hate emails.
Stars: ✭ 105 (-80.48%)
Mutual labels:  cli, email
Spam Bot 3000
Social media research and promotion, semi-autonomous CLI bot
Stars: ✭ 79 (-85.32%)
Mutual labels:  cli, social-media
Dfw1n Osint
Australian Open Source Intelligence Gathering Resources, Australias Largest Open Source Intelligence Repository for Cyber Professionals and Ethical Hackers
Stars: ✭ 63 (-88.29%)
Mutual labels:  osint, social-media
DaProfiler
DaProfiler allows you to create a profile on your target based in France only. The particularity of this program is its ability to find the e-mail addresses your target.
Stars: ✭ 58 (-89.22%)
Mutual labels:  social-media, osint
Osint Tools
OSINT tools catalog
Stars: ✭ 62 (-88.48%)
Mutual labels:  osint, email
H8mail
Email OSINT & Password breach hunting tool, locally or using premium services. Supports chasing down related email
Stars: ✭ 2,163 (+302.04%)
Mutual labels:  osint, email
Social Analyzer
API, CLI & Web App for analyzing & finding a person's profile across +1000 social media \ websites (Detections are updated regularly by automated systems)
Stars: ✭ 8,449 (+1470.45%)
Mutual labels:  osint, social-media
Holehe
holehe allows you to check if the mail is used on different sites like twitter, instagram and will retrieve information on sites with the forgotten password function.
Stars: ✭ 568 (+5.58%)
Mutual labels:  osint, email
Probe spider
Probe_Spider is a Open Source Intelligence Tool made complete out of Python.
Stars: ✭ 20 (-96.28%)
Mutual labels:  cli, osint
E4GL30S1NT
E4GL30S1NT - Simple Information Gathering Tool
Stars: ✭ 139 (-74.16%)
Mutual labels:  social-media, osint
Singlefile
Web Extension for Firefox/Chrome/MS Edge and CLI tool to save a faithful copy of an entire web page in a single HTML file
Stars: ✭ 4,417 (+721%)
Mutual labels:  cli, osint
Valheim Docker
Valheim Docker powered by Odin. The Valheim dedicated gameserver manager which is designed with resiliency in mind by providing automatic updates, world backup support, and a user friendly cli interface.
Stars: ✭ 525 (-2.42%)
Mutual labels:  cli

socialscan

Build Status Downloads MPL 2.0 license Python 3.6+ Code style: black

socialscan offers accurate and fast checks for email address and username usage on online platforms.

Given an email address or username, socialscan returns whether it is available, taken or invalid on online platforms.

Features that differentiate socialscan from similar tools (e.g. knowem.com, Namechk, and Sherlock):

  1. 100% accuracy: socialscan's query method eliminates the false positives and negatives that often occur in similar tools, ensuring that results are always accurate.

  2. Speed: socialscan uses asyncio along with aiohttp to conduct all queries concurrently, providing fast searches even with bulk queries involving hundreds of usernames and email addresses. On a test computer with average specs and Internet speed, 100 queries were executed in ~4 seconds.

  3. Library / CLI: socialscan can be executed through a CLI, or imported as a Python library to be used with existing code.

  4. Email support: socialscan supports queries for both email addresses and usernames.

The following platforms are currently supported:

Username Email
Instagram ✔️ ✔️
Twitter ✔️ ✔️
GitHub ✔️ ✔️
Tumblr ✔️ ✔️
Lastfm ✔️ ✔️
Snapchat ✔️
GitLab ✔️
Reddit ✔️
Yahoo ✔️
Pinterest ✔️
Spotify ✔️
Firefox ✔️

Background

Other similar tools check username availability by requesting the profile page of the username in question and based on information like the HTTP status code or error text on the requested page, determine whether a username is already taken. This is a naive approach that fails in the following cases:

  • Reserved keywords: Most platforms have a set of keywords that they don't allow to be used in usernames
    (A simple test: try checking reserved words like 'admin' or 'home' or 'root' and see if other services mark them as available)

  • Deleted/banned accounts: Deleted/banned account usernames tend to be unavailable even though the profile pages might not exist

Therefore, these tools tend to come up with false positives and negatives. This method of checking is also dependent on platforms having web-based profile pages and cannot be extended to email addresses.

socialscan aims to plug these gaps by directly querying the registration servers of the platforms instead, retrieving the appropriate CSRF tokens, headers, and cookies.

Installation

pip

> pip install socialscan

Install from source

> git clone https://github.com/iojw/socialscan.git  
> cd socialscan  
> pip install .

Usage

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

As a library

socialscan can also be imported into existing code and used as a library.

v1.0.0 introduces the async method execute_queries and the corresponding synchronous wrapper sync_execute_queries that takes a list of queries and optional list of platforms and proxies, executing all queries concurrently. The method then returns a list of results in the same order.

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)

Text file input

For bulk queries with the --input option, place one username/email on each line in the .txt file:

username1
[email protected]
username3

Donations

If you find this tool useful and would like to support its continued development, you can donate here. Thank you for your support.

Donate Via PayPal

BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f

Contributing

Errors, suggestions or want a site added? Submit an issue.

PRs are always welcome 🙂

Please ensure that the code is formatted with black using the config in pyproject.toml before submitting a PR.

License

MPL 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].