
Pivotable Reverse WhoIs / PDNS Fusion مع تتبع المسجلين والتنبيهات بالإضافة إلى API للاستعلامات الآلية (JSON/CSV/TXT)
ملاحظة: خلال تطوير PyDat 5، تحولت الاتجاهات الداخلية مما أدى إلى تقاعد مشروع PyDat. على الرغم من إنجاز الكثير من العمل لإنهاء قدرات PyDat 5، إلا أن بعض القدرات لا تزال غير مختبرة بالكامل.
مشروع WhoDat هو واجهة لبيانات whoisxmlapi، أو أي بيانات whois موجودة في ElasticSearch. يدمج بيانات whois، وتحليلات IP الحالية، و DNS السلبي. بالإضافة إلى توفير تطبيق تفاعلي قابل للتحليل للمحللين لإجراء الأبحاث، فإنه يحتوي أيضًا على API يتيح الإخراج بتنسيق JSON.
WhoDat كتبه في الأصل Chris Clark. التنفيذ الأصلي بلغة PHP وهو متاح في هذا المستودع تحت مجلد legacy_whodat. أعيدت كتابة الكود من الصفر بواسطة Wesley Shields و Murad Khan بلغة Python، وهو متاح تحت مجلد pydat.
إصدار PHP متروك لمن يرغب في تشغيله، لكنه ليس كامل الميزات أو قابل للتوسع مثل تنفيذ Python، ولا يتم دعمه.
لمزيد من المعلومات حول تنفيذ PHP، يرجى الاطلاع على readme. لمزيد من المعلومات حول تنفيذ Python، تابع القراءة...
pyDat هو تنفيذ Python لكود WhoDat الخاص بـ Chris Clark. تم تصميمه ليكون أكثر قابلية للتوسع ويمتلك ميزات أكثر من تنفيذ PHP.
pyDat هو تطبيق Python 3.6+ يتطلب ما يلي للتشغيل:
للمساعدة في تعبئة قاعدة البيانات بشكل صحيح، يتم توفير برنامج يسمى pydat-populator لتعبئة البيانات تلقائيًا.
لاحظ أن البيانات القادمة من whoisxmlapi لا تبدو دائمًا متسقة لذا يجب توخي الحذر عند استيراد البيانات.
هناك حاجة إلى مزيد من الاختبار لضمان استيراد جميع البيانات بشكل صحيح.
يجب على أي شخص يقوم بإعداد قاعدة البيانات قراءة العلامات المتاحة للبرنامج النصي قبل تشغيله للتأكد من ضبطه ليناسب إعداده.
فيما يلي مخرجات pydat-populator -h:
usage: pydat-populator [-h] [-c CONFIG] [--debug] [--debug-level DEBUG_LEVEL]
[-x EXCLUDE [EXCLUDE ...]] [-n INCLUDE [INCLUDE ...]]
[--ignore-field-prefixes [IGNORE_FIELD_PREFIXES [IGNORE_FIELD_PREFIXES ...]]]
[-e EXTENSION] [-v] [-s] [--pipelines PIPELINES]
[--shipper-threads SHIPPER_THREADS]
[--fetcher-threads FETCHER_THREADS]
[--bulk-ship-size BULK_SHIP_SIZE]
[--bulk-fetch-size BULK_FETCH_SIZE]
[-u [ES_URI [ES_URI ...]]] [--es-user ES_USER]
[--es-pass ES_PASSWORD] [--cacert ES_CA_CERT]
[--es-disable-sniffing] [-p ES_INDEX_PREFIX]
[--rollover-size ES_ROLLOVER_DOCS] [--ask-pass]
[-r | --config-template-only | --clear-interrupted-flag]
[-f INGEST_FILE | -d INGEST_DIRECTORY] [-D INGEST_DAY]
[-o COMMENT]
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
location of configuration file for
environmentparameter configuration (example yaml file
in /backend)
--debug Enables debug logging
--debug-level DEBUG_LEVEL
Debug logging level [0-3] (default: 1)
-x EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
list of keys to exclude if updating entry
-n INCLUDE [INCLUDE ...], --include INCLUDE [INCLUDE ...]
list of keys to include if updating entry (mutually
exclusive to -x)
--ignore-field-prefixes [IGNORE_FIELD_PREFIXES [IGNORE_FIELD_PREFIXES ...]]
list of fields (in whois data) to ignore when
extracting and inserting into ElasticSearch
-e EXTENSION, --extension EXTENSION
When scanning for CSV files only parse files with
given extension (default: csv)
-v, --verbose Be verbose
-s, --stats Print out Stats after running
-r, --redo Attempt to re-import a failed import or import more
data, uses stored metadata from previous run
--config-template-only
Configure the ElasticSearch template and then exit
--clear-interrupted-flag
Clear the interrupted flag, forcefully (NOT
RECOMMENDED)
-f INGEST_FILE, --file INGEST_FILE
Input CSV file
-d INGEST_DIRECTORY, --directory INGEST_DIRECTORY
Directory to recursively search for CSV files --
mutually exclusive to '-f' option
-D INGEST_DAY, --ingest-day INGEST_DAY
Day to use for metadata, in the format 'YYYY-MM-dd',
e.g., '2021-01-01'. Defaults to todays date, use
'YYYY-MM-00' to indicate a quarterly ingest, e.g.,
2021-04-00
-o COMMENT, --comment COMMENT
Comment to store with metadata
Performance Options:
--pipelines PIPELINES
Number of pipelines (default: 2)
--shipper-threads SHIPPER_THREADS
How many threads per pipeline to spawn to send bulk ES
messages. The larger your cluster, the more you can
increase this, defaults to 1
--fetcher-threads FETCHER_THREADS
How many threads to spawn to search ES. The larger
your cluster, the more you can increase this, defaults
to 2
--bulk-ship-size BULK_SHIP_SIZE
Size of Bulk Elasticsearch Requests (default: 10)
--bulk-fetch-size BULK_FETCH_SIZE
Number of documents to search for at a time (default:
50), note that this will be multiplied by the number
of indices you have, e.g., if you have 10
pydat-<number> indices it results in a request for 500
documents
Elasticsearch Options:
-u [ES_URI [ES_URI ...]], --es-uri [ES_URI [ES_URI ...]]
Location(s) of ElasticSearch Server (e.g.,
foo.server.com:9200) Can take multiple endpoints
--es-user ES_USER Username for ElasticSearch when Basic Auth is enabled
--es-pass ES_PASSWORD
Password for ElasticSearch when Basic Auth is enabled
--cacert ES_CA_CERT Path to a CA Certicate bundle to enable https support
--es-disable-sniffing
Disable ES sniffing, useful when ssl
hostnameverification is not working properly
-p ES_INDEX_PREFIX, --index-prefix ES_INDEX_PREFIX
Index prefix to use in ElasticSearch (default: pydat)
--rollover-size ES_ROLLOVER_DOCS
Set the number of documents after which point a new
index should be created, defaults to 50 million, note
that this is fuzzy since the index count isn't
continuously updated, so should be reasonably below 2
billion per ES shard and should take your ES
configuration into consideration
--ask-pass Prompt for ElasticSearch password