
Domain-Anreicherungs-Toolkit $ pip install richkit
Richkit ist ein Python3-Paket, das Werkzeuge bereitstellt, die einen Domainnamen als Eingabe nehmen und zusätzliche Informationen zu dieser Domain zurückgeben. Dies kann eine Analyse der Domain selbst sein, ein Abruf aus Datenbanken, das Abrufen von anderen Diensten oder eine Kombination daraus.
Der Zweck von Richkit ist es, eine wiederverwendbare Bibliothek von Funktionen zur Analyse, zum Nachschlagen und zum Abrufen von Domainnamen bereitzustellen, die innerhalb der Network Security-Forschungsgruppe der Universität Aalborg geteilt werden und auch der Öffentlichkeit zur Wiederverwendung und Modifikation zur Verfügung steht.
Die Dokumentation ist unter https://richkit.readthedocs.io/en/latest/ zu finden.
Python >= 3.5Um Richkit zu installieren, gib einfach pip install richkit in das Terminal ein.
Die folgenden Codes können verwendet werden, um die TLD und die URL-Kategorie abzurufen.
Abrufen der effektiven Top-Level-Domain einer bestimmten URL:
>>> from richkit.analyse import tld
>>> urls = ["www.aau.dk","www.github.com","www.google.com"]
>>>
>>> for url in urls:
... print(tld(url))
dk
com
com
Abrufen der Kategorie einer bestimmten URL:
>>> from richkit.retrieve.symantec import fetch_from_internet
>>> from richkit.retrieve.symantec import LocalCategoryDB
>>>
>>> urls = ["www.aau.dk","www.github.com","www.google.com"]
>>>
>>> local_db = LocalCategoryDB()
>>> for url in urls:
... url_category=local_db.get_category(url)
... if url_category=='':
... url_category=fetch_from_internet(url)
... print(url_category)
Education
Technology/Internet
Search Engines/Portals
Richkit definiert eine Reihe von Funktionen, die durch die folgenden Module kategorisiert sind:
richkit.analyse: Dieses Modul bietet Funktionen, die auf einen Domainnamen angewendet werden können. Ähnlich wie bei richkit.lookup und im Gegensatz zu richkit.retrieve geschieht dies, ohne den Domainnamen Dritten preiszugeben und die Vertraulichkeit zu verletzen.
richkit.lookup: Dieses Modul bietet die Möglichkeit, Domainnamen in lokalen Ressourcen nachzuschlagen, d.h. der Domainname darf nicht an Dritte gesendet werden. Das Modul kann Ressourcen wie Listen oder Datenbanken abrufen, aber dies muss so erfolgen, dass der Domainname vertraulich bleibt. Vergleiche dies mit richkit.retrieve.
richkit.retrieve: Dieses Modul bietet die Möglichkeit, Daten zu Domainnamen jeglicher Art abzurufen. Es kommt ohne den "Vertraulichkeitsvertrag" von richkit.lookup aus.
Um Probleme mit der Umgebung zu vermeiden, stellen wir die Datei Dockerfile.test zur Verfügung, die ein Docker-Image erstellt, um die Tests von Richkit auszuführen.
MAXMIND_LICENCE_KEY in .github/local-test/run-test.sh in Zeile 3 ein. Dies ist erforderlich, um die Testfälle für das lookup-Modul zu bestehen.Befehle zum Testen in der Docker-Umgebung:
docker build -t richkit-test -f Dockerfile.test .: Erstellt das erforderliche Image zum Ausführen der Testfälle.
docker run -e MAXMIND_LICENSE_KEY="<licence-key>" richkit-test: Führt die Datei run-test.sh im Docker-Image aus.
Beiträge sind sehr willkommen.
Wir verwenden die Gitflow-Branching-Strategie. Wenn du also vorhast, einen Branch in dieses Repository zu pushen, folge bitte dieser Strategie. Beachte, dass wir Branchnamen mit .githooks/check-branch-name.py testen. Der Git-Pre-Commit-Hook kann verwendet werden, um dies automatisch beim Committen zu überprüfen. Ein Beispiel, das unter Linux direkt wie folgt verwendet werden kann, ist verfügbar und kann wie folgt aktiviert werden (vorausgesetzt python>=3.6 und bash):
ln -s $(pwd)/.githooks/pre-commit.linux.sample $(pwd)/.git/hooks/pre-commit