
Pivotable Reverse WhoIs / PDNS Fusion mit Registrant Tracking & Alarmierung plus API für automatisierte Abfragen (JSON/CSV/TXT)
HINWEIS: Während der Entwicklung von PyDat 5 hat sich die interne Ausrichtung geändert, was zur Einstellung des PyDat-Projekts führte. Obwohl ein Großteil der Arbeit zur Fertigstellung der Funktionen von PyDat 5 erledigt wurde, sind einige Fähigkeiten noch nicht vollständig getestet.
Das WhoDat-Projekt ist eine Schnittstelle für whoisxmlapi-Daten oder beliebige Whois-Daten, die in ElasticSearch gespeichert sind. Es integriert Whois-Daten, aktuelle IP-Auflösungen und passives DNS. Neben einer interaktiven, pivotierbaren Anwendung für Analysten zur Recherche bietet es auch eine API, die eine Ausgabe im JSON-Format ermöglicht.
WhoDat wurde ursprünglich von Chris Clark geschrieben. Die ursprüngliche Implementierung ist in PHP und in diesem Repository unter dem Verzeichnis legacy_whodat verfügbar. Der Code wurde von Wesley Shields und Murad Khan in Python neu geschrieben und ist unter dem Verzeichnis pydat verfügbar.
Die PHP-Version bleibt für diejenigen, die sie ausführen möchten, erhalten, ist aber nicht so funktionsreich oder erweiterbar wie die Python-Implementierung und wird nicht unterstützt.
Weitere Informationen zur PHP-Implementierung finden Sie in der readme. Für weitere Informationen zur Python-Implementierung lesen Sie bitte weiter...
pyDat ist eine Python-Implementierung von Chris Clark's WhoDat-Code. Es ist darauf ausgelegt, erweiterbarer zu sein und mehr Funktionen als die PHP-Implementierung zu bieten.
pyDat ist eine Python 3.6+ Anwendung, die Folgendes benötigt:
Um die ordnungsgemäße Befüllung der Datenbank zu unterstützen, wird ein Programm namens pydat-populator bereitgestellt, um die Daten automatisch zu befüllen.
Beachten Sie, dass die Daten von whoisxmlapi nicht immer konsistent zu sein scheinen, daher sollte beim Importieren der Daten Vorsicht walten.
Es müssen weitere Tests durchgeführt werden, um sicherzustellen, dass alle Daten korrekt importiert werden.
Jeder, der seine Datenbank einrichtet, sollte die verfügbaren Flags des Skripts lesen, bevor er es ausführt, um sicherzustellen, dass es für sein Setup angepasst ist.
Im Folgenden die Ausgabe von 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