### че это
проверка ip по базам dns-based blacklist.
### как использовать:
сначала установить: `pip install prlsp_dnsbl`
пример использования:
```python
# асинхронный вариант:
from prlsp_dnsbl import dnsbl_check_ip
async def your_async_func():
result = await dnsbl_check_ip('45.144.48.63')
print(result)
```
функция `dnsbl_check_ip()` принимает ip адрес и проверяет его в базах dnsbl (dns-based blacklist), можно выбрать базовый или полный список проверок через аргумент `dnsbl` (смысла в полном практически нет, используйте `base`), параметр `non_system_dns` позволяет выбрать несистемные dns серверы, а `max_concurrent_requests` ограничить количество одновременных запросов:
* `ip`: ip адрес, который необходимо проверить.
* `dnsbl`: тип списка dnsbl для проверки. принимает значения `'base'` или `'all'`. по умолчанию `'base'`.
* `non_system_dns`: если `True`, используются предопределенные dns серверы (1.1.1.1, 77.88.8.8, 8.8.8.8). по умолчанию `False`.
* `max_concurrent_requests`: максимальное количество одновременных запросов. если `None`, ограничение определяется количеством доменов в списке. по умолчанию `None`.
* `timeout`: максимальное время ожидания ответа от dns сервера в секундах. по умолчанию 30.0.
играйся 😊
Raw data
{
"_id": null,
"home_page": "https://github.com/prolapser/prlsp_dnsbl",
"name": "prlsp-dnsbl",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "prolapser",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/fc/c3/6f19ffd424696c6a8733dd995664bf7c0f76bfc7d915e45b5fd28281b04d/prlsp_dnsbl-0.0.1a0.tar.gz",
"platform": null,
"description": "### \u0447\u0435 \u044d\u0442\u043e\n\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 ip \u043f\u043e \u0431\u0430\u0437\u0430\u043c dns-based blacklist.\n\n### \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c:\n\n\u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c: `pip install prlsp_dnsbl`\n\n\u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\n\n```python\n# \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442:\nfrom prlsp_dnsbl import dnsbl_check_ip\n\nasync def your_async_func():\n result = await dnsbl_check_ip('45.144.48.63')\n print(result)\n```\n\n\u0444\u0443\u043d\u043a\u0446\u0438\u044f `dnsbl_check_ip()` \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 ip \u0430\u0434\u0440\u0435\u0441 \u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0435\u0433\u043e \u0432 \u0431\u0430\u0437\u0430\u0445 dnsbl (dns-based blacklist), \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0438\u043b\u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u043e\u043a \u0447\u0435\u0440\u0435\u0437 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 `dnsbl` (\u0441\u043c\u044b\u0441\u043b\u0430 \u0432 \u043f\u043e\u043b\u043d\u043e\u043c \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0442, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `base`), \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 `non_system_dns` \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 dns \u0441\u0435\u0440\u0432\u0435\u0440\u044b, \u0430 `max_concurrent_requests` \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432:\n\n* `ip`: ip \u0430\u0434\u0440\u0435\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c.\n\n* `dnsbl`: \u0442\u0438\u043f \u0441\u043f\u0438\u0441\u043a\u0430 dnsbl \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438. \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f `'base'` \u0438\u043b\u0438 `'all'`. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `'base'`.\n\n* `non_system_dns`: \u0435\u0441\u043b\u0438 `True`, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0435 dns \u0441\u0435\u0440\u0432\u0435\u0440\u044b (1.1.1.1, 77.88.8.8, 8.8.8.8). \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `False`.\n\n* `max_concurrent_requests`: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432. \u0435\u0441\u043b\u0438 `None`, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u043e\u0432 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e `None`.\n\n* `timeout`: \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u043e\u0436\u0438\u0434\u0430\u043d\u0438\u044f \u043e\u0442\u0432\u0435\u0442\u0430 \u043e\u0442 dns \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0430\u0445. \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 30.0.\n\n\u0438\u0433\u0440\u0430\u0439\u0441\u044f \ud83d\ude0a\n",
"bugtrack_url": null,
"license": "LICENSE.txt",
"summary": "\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 ip \u043f\u043e \u0431\u0430\u0437\u0430\u043c dns-based blacklist",
"version": "0.0.1a0",
"project_urls": {
"Homepage": "https://github.com/prolapser/prlsp_dnsbl"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0416332046e6f577212750bf882b0cd7d74ff2a463ce780d2662d47136a89e49",
"md5": "27bad66a8ebefc9a94b59572c79027d4",
"sha256": "7ee0f93ddf85ebdbe3462f17b3f8d466d97f6060ac90d654836f48f1b649925f"
},
"downloads": -1,
"filename": "prlsp_dnsbl-0.0.1a0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "27bad66a8ebefc9a94b59572c79027d4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 9445,
"upload_time": "2024-06-21T20:24:33",
"upload_time_iso_8601": "2024-06-21T20:24:33.240083Z",
"url": "https://files.pythonhosted.org/packages/04/16/332046e6f577212750bf882b0cd7d74ff2a463ce780d2662d47136a89e49/prlsp_dnsbl-0.0.1a0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fcc36f19ffd424696c6a8733dd995664bf7c0f76bfc7d915e45b5fd28281b04d",
"md5": "ed717e4de20723419cf2ba0314816387",
"sha256": "5308f292a5695a2b88d3876508e41efbab6f89aded50ccdab4a08e949d0af04f"
},
"downloads": -1,
"filename": "prlsp_dnsbl-0.0.1a0.tar.gz",
"has_sig": false,
"md5_digest": "ed717e4de20723419cf2ba0314816387",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 8654,
"upload_time": "2024-06-21T20:24:35",
"upload_time_iso_8601": "2024-06-21T20:24:35.357634Z",
"url": "https://files.pythonhosted.org/packages/fc/c3/6f19ffd424696c6a8733dd995664bf7c0f76bfc7d915e45b5fd28281b04d/prlsp_dnsbl-0.0.1a0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-21 20:24:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "prolapser",
"github_project": "prlsp_dnsbl",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "prlsp-dnsbl"
}