
مكتبة بايثون للاستعلام بدقة عن استخدام اسم المستخدم والبريد الإلكتروني على المنصات الإلكترونية
يقدم socialscan فحوصات دقيقة وسريعة لاستخدام عنوان البريد الإلكتروني واسم المستخدم على المنصات الإلكترونية.
بالنظر إلى عنوان بريد إلكتروني أو اسم مستخدم، يعيد socialscan ما إذا كان متاحًا أو مستخدمًا أو غير صالح على المنصات الإلكترونية.
الميزات التي تميز socialscan عن الأدوات المشابهة (مثل knowem.com وNamechk وSherlock):
دقة 100%: تقضي طريقة الاستعلام في socialscan على النتائج الإيجابية والسالبة الخاطئة التي تحدث غالبًا في الأدوات المشابهة، مما يضمن أن النتائج دائمة الدقة.
السرعة: يستخدم socialscan asyncio جنبًا إلى جنب مع aiohttp لإجراء جميع الاستعلامات بشكل متزامن، مما يوفر عمليات بحث سريعة حتى مع الاستعلامات الجماعية التي تشمل مئات أسماء المستخدمين وعناوين البريد الإلكتروني. على جهاز اختبار بمواصفات متوسطة وسرعة إنترنت عادية، تم تنفيذ 100 استعلام في حوالي 4 ثوانٍ.
مكتبة / واجهة سطر أوامر (CLI): يمكن تنفيذ socialscan عبر واجهة سطر أوامر، أو استيراده كمكتبة 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 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 إلى الكود الموجود واستخدامه كمكتبة.
يقدم الإصدار 1.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
أخطاء أو اقتراحات أو تريد إضافة موقع؟ قدم مشكلة.
طلبات السحب (PRs) مرحب بها دائمًا 🙂
يرجى التأكد من تنسيق الكود باستخدام black باستخدام التكوين في pyproject.toml قبل تقديم طلب سحب.
MPL 2.0
| اسم المستخدم | البريد الإلكتروني |
|---|
| ✔️ | ✔️ | |
| ✔️ | ✔️ | |
| GitHub | ✔️ | ✔️ |
| Tumblr | ✔️ | ✔️ |
| Lastfm | ✔️ | ✔️ |
| Snapchat | ✔️ | |
| GitLab | ✔️ | |
| ✔️ | ||
| Yahoo | ✔️ | |
| ✔️ | ||
| Firefox | ✔️ |