
Python library for accurately querying username and email usage on online platforms
socialscan은 온라인 플랫폼에서 이메일 주소와 사용자 이름 사용 여부를 정확하게 그리고 빠르게 확인할 수 있는 도구입니다.
이메일 주소나 사용자 이름을 입력하면 socialscan은 온라인 플랫폼에서 해당 항목이 사용 가능한지, 이미 사용 중인지, 유효하지 않은지 반환합니다.
socialscan을 유사한 도구(예: knowem.com, Namechk, Sherlock)와 차별화하는 기능:
100% 정확도: socialscan의 쿼리 방식은 유사 도구에서 자주 발생하는 오탐지(거짓 양성)와 미탐지(거짓 음성)를 제거하여 항상 정확한 결과를 보장합니다.
속도: socialscan은 asyncio와 aiohttp를 사용하여 모든 쿼리를 동시에 수행하므로 수백 개의 사용자 이름과 이메일 주소를 포함하는 대량 쿼리에서도 빠른 검색을 제공합니다. 평균 사양과 인터넷 속도의 테스트 컴퓨터에서 100개의 쿼리를 약 4초 안에 실행했습니다.
라이브러리 / CLI: socialscan은 CLI를 통해 실행하거나 Python 라이브러리로 임포트하여 기존 코드와 함께 사용할 수 있습니다.
이메일 지원: socialscan은 이메일 주소와 사용자 이름 모두에 대한 쿼리를 지원합니다.
현재 지원되는 플랫폼은 다음과 같습니다:

다른 유사 도구들은 확인하려는 사용자 이름의 프로필 페이지를 요청하고, 요청된 페이지의 HTTP 상태 코드나 오류 텍스트와 같은 정보를 기반으로 사용자 이름이 이미 사용 중인지 판단합니다. 이는 다음과 같은 경우에 실패하는 단순한 접근 방식입니다:
예약 키워드: 대부분의 플랫폼에는 사용자 이름에 사용할 수 없는 키워드 집합이 있습니다.
(간단한 테스트: 'admin', 'home', 'root' 같은 예약어를 확인해보고 다른 서비스에서 이를 사용 가능으로 표시하는지 확인해보세요.)
삭제/차단된 계정: 삭제되거나 차단된 계정의 사용자 이름은 프로필 페이지가 존재하지 않더라도 사용할 수 없는 경향이 있습니다.
따라서 이러한 도구들은 오탐지 및 미탐지를 발생시키는 경향이 있습니다. 이 확인 방법은 플랫폼이 웹 기반 프로필 페이지를 가지고 있어야 하며 이메일 주소로 확장할 수 없습니다.
socialscan은 대신 플랫폼의 등록 서버에 직접 쿼리하여 적절한 CSRF 토큰, 헤더 및 쿠키를 검색함으로써 이러한 격차를 메우는 것을 목표로 합니다.
> 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 도움말 메시지를 표시하고 종료합니다.
--platforms [platform [platform ...]], -p [platform [platform ...]]
쿼리할 플랫폼 목록 (기본값: 모든 플랫폼)
--view-by {platform,query}
플랫폼 또는 쿼리별로 정렬된 결과 보기 (기본값: query)
--available-only, -a 사용 가능하고 사용 중이지 않은 사용자 이름/이메일 주소만 출력
--cache-tokens, -c 둘 이상의 HTTP 요청이 필요한 플랫폼(Snapchat, GitHub, Instagram, Lastfm, Tumblr)의 토큰을 캐싱하여 전송되는 총 요청 수를 줄입니다.
--input input.txt, -i input.txt
실행할 쿼리 목록이 포함된 파일
--proxy-list proxy_list.txt
쿼리 실행에 사용할 HTTP 프록시 서버 목록이 포함된 파일
--verbose, -v 수신되는 대로 쿼리 응답 표시
--show-urls 지원되는 플랫폼의 사용자 이름에 대한 프로필 URL 표시
(사용자 이름이 예약되었거나 삭제/차단된 계정에 속한 경우 프로필이 존재하지 않을 수 있음)
--json json.txt 지정된 파일에 JSON 형식으로 결과 출력
--version 프로그램 버전 번호를 표시하고 종료
socialscan은 기존 코드에 임포트하여 라이브러리로 사용할 수도 있습니다.
v1.0.0에서는 비동기 메서드 execute_queries와 이에 대응하는 동기 래퍼 sync_execute_queries가 도입되었습니다. 이 메서드는 쿼리 목록과 선택적 플랫폼 및 프록시 목록을 받아 모든 쿼리를 동시에 실행합니다. 그런 다음 동일한 순서로 결과 목록을 반환합니다.
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})")
출력:
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)
--input 옵션을 사용한 대량 쿼리의 경우 .txt 파일의 각 줄에 하나의 사용자 이름/이메일을 입력하세요:
username1
[email protected]
username3
이 도구가 유용하다고 생각하시고 지속적인 개발을 지원하고 싶다면 여기에서 후원할 수 있습니다. 지원해 주셔서 감사합니다.
BTC: bc1qwrnukyc6xh9aygu5ps2geh8stmvagsj5u4v7j6
ETH: 0x45a0F91666391078eA521A6123559E49DAb1275f
오류, 제안, 또는 사이트 추가를 원하시나요? 이슈를 제출해 주세요.
PR은 언제나 환영입니다 🙂
PR을 제출하기 전에 pyproject.toml의 설정을 사용하여 코드가 black으로 포맷되었는지 확인해 주세요.
MPL 2.0
| 사용자 이름 | 이메일 |
|---|
| ✔️ | ✔️ | |
| ✔️ | ✔️ | |
| GitHub | ✔️ | ✔️ |
| Tumblr | ✔️ | ✔️ |
| Lastfm | ✔️ | ✔️ |
| Snapchat | ✔️ | |
| GitLab | ✔️ | |
| ✔️ | ||
| Yahoo | ✔️ | |
| ✔️ | ||
| Firefox | ✔️ |