
لوحة دمج الاستخبارات متعددة المصادر — شبكات WiFi، الخلوي، كاميرات المراقبة، ADS-B، المدارات وبثوث SDR موحّدة في خريطة تكتيكية واحدة. لأغراض البحث الأمني فقط.
منصة اندماج استخبارات الإشارات (SIGINT) متكاملة المصادر لأبحاث وتدريب الأمن السيبراني. تسحب Signal OPS عشرات المصادر المفتوحة — قواعد بيانات WiFi/Bluetooth/أبراج الخلايا، ماسحات التعرض للإنترنت، فهارس الكاميرات، خلاصات طيران ADS-B، تتبع الأقمار الصناعية TLE، وشبكات SDR/APRS — في خريطة تكتيكية واحدة وواجهة Flask API، لربط مجالات الترددات الراديوية، الخلوية، المجال الجوي، المدارية، والمراقبة في صورة تشغيلية واحدة في الوقت الفعلي، مع ملخصات تهديدات مدعومة بالذكاء الاصطناعي اختيارياً في الطبقة العليا.
تقريباً كل مصدر اختياري. إذا لم يتم تعيين مفتاح، يتم تخطي ذلك الجالب بأمان — المصادر المجانية (OpenStreetMap وInsecam وipinfo.io وADS-B وCelesTrak وKiwiSDR) تعمل بدون أي مفاتيح.
تدمج الخريطة الرئيسية طبقات WiFi وBluetooth والخلوي والكاميرات والطائرات فوق نفس المنطقة، مع طبقات قابلة للتبديل لكاميرات OSM وشبكات ALPR/Flock وأقسام الشرطة.


| خلاصة المراقبة | اكتشاف CCTV |
|---|---|
![]() | ![]() |
تقوم قائمة المراقبة بتسجيل كل جهاز (مثل "شك 35/100: كاميرا غير مصادق عليها") وتدمج أجهزة التوجيه وأجهزة التلفاز والكاميرات المكشوفة من WiGLE وInsecam وOSM. يعرض عرض CCTV الكاميرات المكتشفة مجمعة حسب المصدر مع مخاطر كل كاميرا وحالة مباشرة/بيانات وصفية.
| خريطة حرارية لأبراج الخلايا | شبكة SDR / APRS |
|---|---|
![]() | ![]() |
التبعيات الأساسية:
flask
requests
python-dotenv
موصى بها (تمكّن الوظائف الكاملة — التخزين المؤقت، تحديد معدل الطلبات، انتشار الأقمار الصناعية):
cachetools # ذاكرة تخزين جغرافية محدودة (تتراجع إلى dict غير محدود إذا كانت مفقودة)
flask-limiter # تحديد معدل الطلبات
sgp4 # انتشار مواقع الأقمار الصناعية لـ /api/satellites
google-genai # تحليل Gemini AI (فقط إذا كنت تستخدم GEMINI_API_KEY)
تثبيت كل شيء:
pip install flask requests python-dotenv cachetools flask-limiter sgp4 google-genai
git https://github.com/emrekybs/signalops.git
unzip signalops-v1.zip
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
إذا لم يكن لديك requirements.txt، استخدم سطر pip install من قسم المتطلبات أعلاه.
انسخ ملف المثال واملأ المفاتيح التي لديك:
cp .env.example .env
ثم افتح .env والصق مفاتيح API الخاصة بك. كل مفتاح اختياري — اترك أي سطر فارغاً (أو احذفه) لتعطيل ذلك المصدر. راجع القسم التالي لمعرفة وظيفة كل واحد ومكان الحصول عليه.
لاستعلامات فورية دون اتصال للكاميرات وأقسام الشرطة، ضع هذه الملفات تحت دليل data/ (أو وجّه DATA_DIR إلى مكان آخر):
data/CAMERAS_WITH_NETWORK_DATA.geojson # ميزات نقطية (كاميرات)
data/police_precincts_usa.geojson # ميزات مضلعة (أقسام شرطة أمريكية)
data/camera_networks.json # بيانات وصفية لمشاركة الشبكة
data/tiles/{z}/{x}/{y}.json # مجموعة بيانات كاميرات مبلطة اختيارية
إذا كانت هذه الملفات غائبة، يتراجع التطبيق تلقائياً إلى استعلامات OpenStreetMap Overpass المباشرة.
python app_v2.py
يبدأ الخادم على http://0.0.0.0:8080. افتح http://localhost:8080 في متصفحك.
تحقق من المزودين الذين تم تحميلهم بنجاح في أي وقت:
GET /api/status # المفاتيح النشطة مقابل المفقودة
GET /api/debug # قيمة منطقية لكل مفتاح + اختبار مصادقة WiGLE مباشر
أنشئ ملف .env في جذر المشروع. فيما يلي القائمة الكاملة التي يقرأها التطبيق.
| المتغير |
|---|
لا تحتاج هذه إلى أي تكوين: OpenStreetMap Overpass وInsecam وEarthCam وipinfo.io وADS-B (adsb.fi / OpenSky) وCelesTrak TLE وSatNOGS وKiwiSDR.
.env.exampleاحفظ هذا كـ .env.example في مستودعك حتى يعرف الآخرون الصيغة:
# ── بيئة Signal OPS ──
# كل مفتاح اختياري. اتركه فارغاً لتعطيل ذلك المصدر.
# WiFi / Bluetooth / خلوي
WIGLE_API_NAME=
WIGLE_API_TOKEN=
OPENCELLID_API_KEY=
# ماسحات التعرض للإنترنت
SHODAN_API_KEY=
CENSYS_API_ID=
CENSYS_API_SECRET=
ZOOMEYE_API_KEY=
FOFA_EMAIL=
FOFA_API_KEY=
HUNTERHOW_API_KEY=
NETLAS_API_KEY=
LEAKIX_API_KEY=
CRIMINALIP_API_KEY=
BINARYEDGE_API_KEY=
# الكاميرات وسمعة IP
WINDY_API_KEY=
ABUSEIPDB_API_KEY=
# الطائرات والراديو الهواة
ADSB_API_KEY=
APRS_FI_KEY=
# تحليل الذكاء الاصطناعي
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash
# تكوين التطبيق
DATA_DIR=./data
FLASK_SECRET_KEY=
مجموعة مختارة من نقاط النهاية المعروضة (راجع المصدر للمجموعة الكاملة):
| المتغير | المزود | احصل على مفتاح من |
|---|
WIGLE_API_NAME | WiGLE (WiFi/BT/خلوي) — اسم المستخدم | https://wigle.net/account |
WIGLE_API_TOKEN | WiGLE — رمز API | https://wigle.net/account |
OPENCELLID_API_KEY | OpenCellID (أبراج الخلايا) | https://opencellid.org |
SHODAN_API_KEY | Shodan (التعرض / الكاميرات) | https://account.shodan.io |
CENSYS_API_ID | Censys — معرف API | https://search.censys.io/account/api |
CENSYS_API_SECRET | Censys — سر API | https://search.censys.io/account/api |
ZOOMEYE_API_KEY | ZoomEye | https://www.zoomeye.org/profile |
FOFA_EMAIL | FOFA — بريد الحساب | https://fofa.info |
FOFA_API_KEY | FOFA — مفتاح API | https://fofa.info |
HUNTERHOW_API_KEY | Hunter.how | https://hunter.how |
NETLAS_API_KEY | Netlas | https://netlas.io |
LEAKIX_API_KEY | LeakIX | https://leakix.net |
CRIMINALIP_API_KEY | CriminalIP | https://www.criminalip.io |
BINARYEDGE_API_KEY | BinaryEdge | https://www.binaryedge.io |
WINDY_API_KEY | Windy Webcams | https://api.windy.com/keys |
ABUSEIPDB_API_KEY | AbuseIPDB (سمعة IP) | https://www.abuseipdb.com/account/api |
ADSB_API_KEY | adsb.fi (اختياري؛ يعمل بدونه) | https://adsb.fi |
APRS_FI_KEY | APRS.fi (محطات الراديو الهواة) | https://aprs.fi/page/api_key |
GEMINI_API_KEY | Google Gemini (تحليل الذكاء الاصطناعي) | https://aistudio.google.com/apikey |
| الافتراضي |
|---|
| الوصف |
|---|
GEMINI_MODEL | gemini-2.0-flash | نموذج Gemini المستخدم للتحليل |
DATA_DIR | ./data | دليل مجموعات بيانات GeoJSON/JSON المحلية |
FLASK_SECRET_KEY | عشوائي لكل تشغيل | سر جلسة Flask؛ عيّن قيمة ثابتة في الإنتاج |
| نقطة النهاية | الغرض |
|---|
GET /nearby?lat=&lon=&mode= | فحص موحد لـ RF/OSINT حول نقطة |
GET /api/cctv?lat=&lon= أو ?country= | اكتشاف الكاميرات حسب الموقع أو الدولة |
GET /api/search?type=&query= | البحث حسب SSID أو IP أو الموقع أو الدولة |
POST /api/analyze | ملخص ذكاء اصطناعي لقائمة الأجهزة |
GET /api/ip-intel?ip= | استخبارات تهديدات IP متعددة المصادر |
GET /api/adsb?lat=&lon=&radius= | طائرات مباشرة + كشف الطوارئ |
GET /api/satellites?categories= | مواقع الأقمار الصناعية (TLE + SGP4) |
GET /api/gps-jamming?lat=&lon= | خريطة حرارية لتشويش GPS من ADS-B |
GET /api/sdr/kiwisdr | قائمة مستقبلات KiwiSDR العامة |
GET /api/aprs/stations?lat=&lon= | محطات APRS القريبة |
GET/POST /api/watchlist | إدارة المعرّفات المتعقبة |
POST /api/watchlist/check | فحص قائمة الأجهزة مقابل قائمة المراقبة |
GET /api/status · GET /api/debug | صحة المزودين / تشخيص المفاتيح |