
Инструментарий для обогащения доменных данных $ pip install richkit
Richkit — это пакет для Python 3, предоставляющий инструменты, которые принимают доменное имя на вход и возвращают дополнительную информацию об этом домене. Это может быть анализ самого домена, поиск в базах данных, получение из других сервисов или их комбинация.
Цель Richkit — предоставить переиспользуемую библиотеку функций анализа, поиска и получения информации о доменных именах, которые используются в исследовательской группе по сетевой безопасности Ольборгского университета, а также доступны общественности для повторного использования и модификации.
Документацию можно найти по адресу https://richkit.readthedocs.io/en/latest/.
Python >= 3.5Для установки richkit просто введите в терминале pip install richkit
Следующий код можно использовать для получения TLD и категории URL соответственно.
Получение действующего домена верхнего уровня для заданного 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
Получение категории заданного 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 определяет набор функций, сгруппированных по следующим модулям:
richkit.analyse: Этот модуль предоставляет функции, которые могут быть применены к доменному имени. Аналогично richkit.lookup и в отличие от richkit.retrieve, это делается без раскрытия доменного имени третьим сторонам и без нарушения конфиденциальности.
richkit.lookup: Этот модуль предоставляет возможность поиска доменных имен в локальных ресурсах, то есть доменное имя не может быть отправлено третьим сторонам. Модуль может загружать ресурсы, такие как списки или базы данных, но это должно делаться таким образом, чтобы сохранять конфиденциальность доменного имени. В отличие от richkit.retrieve.
richkit.retrieve: Этот модуль предоставляет возможность получения любых данных о доменных именах. Он не имеет «контракта конфиденциальности», как richkit.lookup.
Чтобы избежать проблем, связанных с окружением, мы предоставляем файл Dockerfile.test, который собирает образ Docker для запуска тестов Richkit.
MAXMIND_LICENCE_KEY в файле .github/local-test/run-test.sh на строке 3. Это необходимо для прохождения тестов модуля lookup.Команды для тестирования в Docker:
docker build -t richkit-test -f Dockerfile.test . : Сборка образа, необходимого для запуска тестов.
docker run -e MAXMIND_LICENSE_KEY="<licence-key>" richkit-test : Запуск файла run-test.sh внутри образа Docker.
Вклад приветствуется.
Мы используем стратегию ветвления gitflow, поэтому, если вы планируете отправлять ветку в этот репозиторий, пожалуйста, следуйте ей. Обратите внимание, что мы проверяем имена веток с помощью .githooks/check-branch-name.py. Git-хук pre-commit можно использовать для автоматической проверки при коммите. Пример, который можно использовать напрямую, доступен в Linux и может быть включён так (при условии python>=3.6 и bash):
ln -s $(pwd)/.githooks/pre-commit.linux.sample $(pwd)/.git/hooks/pre-commit