
Kit di arricchimento dei domini $ pip install richkit
Richkit è un pacchetto python3 che fornisce strumenti che prendono un nome di dominio come input e restituiscono informazioni aggiuntive su quel dominio. Può trattarsi di un'analisi del dominio stesso, di una ricerca in database, di dati recuperati da altri servizi o di una combinazione di questi.
Lo scopo di Richkit è fornire una libreria riutilizzabile di funzioni di analisi, ricerca e recupero relative ai nomi di dominio, condivise all'interno del gruppo di ricerca Network Security dell'Università di Aalborg, e anche disponibili al pubblico per il riutilizzo e la modifica.
La documentazione è disponibile all'indirizzo https://richkit.readthedocs.io/en/latest/.
Python >= 3.5Per installare richikit basta digitare nel terminale pip install richkit
I seguenti codici possono essere utilizzati per recuperare rispettivamente il TLD e la categoria dell'URL.
Recupero del dominio di primo livello effettivo di un dato 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
Recupero della categoria di un dato 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 definisce un insieme di funzioni categorizzate nei seguenti moduli:
richkit.analyse: Questo modulo fornisce funzioni che possono essere applicate a un nome di dominio. Similmente a richkit.lookup, e a differenza di richkit.retrieve, questo viene fatto senza divulgare il nome di dominio a terze parti e violare la riservatezza.
richkit.lookup: Questo modulo offre la possibilità di cercare nomi di dominio in risorse locali, ovvero il nome di dominio non può essere inviato a terze parti. Il modulo potrebbe recuperare risorse, come liste o database, ma questo deve essere fatto in modo da mantenere riservato il nome di dominio. A differenza di richkit.retrieve.
richkit.retrieve: Questo modulo offre la possibilità di recuperare dati sui nomi di dominio di qualsiasi tipo. Non ha il "contratto di riservatezza" di richkit.lookup.
Per prevenire eventuali problemi legati all'ambiente, forniamo il file Dockerfile.test che costruisce un'immagine docker per eseguire i test di Richkit.
MAXMIND_LICENCE_KEY in .github/local-test/run-test.sh alla riga 3. È necessario per superare i test case per il modulo lookup.Comandi per testarli in ambiente Docker:
docker build -t richkit-test -f Dockerfile.test . : Costruisce l'immagine necessaria per eseguire i test case
docker run -e MAXMIND_LICENSE_KEY="<licence-key> " richkit-test : Esegue il file run-test.sh nell'immagine docker.
I contributi sono i benvenuti.
Utilizziamo la strategia di branching gitflow, quindi se intendi inviare un branch a questo repository, segui quella. Nota che testiamo i nomi dei branch con .githooks/check-branch-name.py. L'hook git pre-commit può essere usato per verificare automaticamente questo al commit. Un esempio che può essere utilizzato direttamente come segue è disponibile su linux, e può essere abilitato così (supponendo python>=3.6 e bash):
ln -s $(pwd)/.githooks/pre-commit.linux.sample $(pwd)/.git/hooks/pre-commit