用Python编写的简单DNS服务器,用于开发和测试。
项目描述
dnserver
用Python编写的简单DNS服务器,用于开发和测试。
该DNS服务器服务于其自己的记录,如果没有找到,则将请求代理到上游DNS服务器,例如 CloudFlare 在 1.1.1.1
。
您可以使用自定义的 zones.toml
文件设置要服务的记录,请参阅 example_zones.toml 示例。
从PyPI安装
使用以下命令安装
pip install dnserver
用法
dnserver --help
(或 python -m dnserver --help
)
例如,要在端口 5053
上提供服务名为 my_zones.toml
的文件,请运行
dnserver --port 5053 my_zones.toml
使用Python的用法
from dnserver import DNSServer
server = DNSServer.from_toml('example_zones.toml', port=5053)
server.start()
assert server.is_running
# now you can do some requests with your favorite dns library
server.stop()
使用Docker的用法
要使用Docker
docker run -p 5053:53/udp -p 5053:53/tcp --rm samuelcolvin/dnserver
(见 dnserver on hub.docker.com)
或者使用自定义区域文件
docker run -p 5053:53/udp -v `pwd`/zones.toml:/zones/zones.toml --rm samuelcolvin/dnserver
(假设您的区域记录在 ./zones.toml
中,使用 dig
不需要TCP,因此在此情况下省略了它。)
您可以使用以下方式测试(以上任何一种):
~ ➤ dig @localhost -p 5053 example.com MX
...
;; ANSWER SECTION:
example.com. 300 IN MX 5 whatever.com.
example.com. 300 IN MX 10 mx2.whatever.com.
example.com. 300 IN MX 20 mx3.whatever.com.
;; Query time: 2 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Sun Feb 26 18:14:52 GMT 2017
;; MSG SIZE rcvd: 94
~ ➤ dig @localhost -p 5053 tutorcruncher.com MX
...
;; ANSWER SECTION:
tutorcruncher.com. 299 IN MX 10 aspmx2.googlemail.com.
tutorcruncher.com. 299 IN MX 5 alt1.aspmx.l.google.com.
tutorcruncher.com. 299 IN MX 5 alt2.aspmx.l.google.com.
tutorcruncher.com. 299 IN MX 1 aspmx.l.google.com.
tutorcruncher.com. 299 IN MX 10 aspmx3.googlemail.com.
;; Query time: 39 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Sun Feb 26 18:14:48 GMT 2017
;; MSG SIZE rcvd: 176
您可以看到,第一个查询耗时2毫秒,并从example_zones.toml
返回结果,第二个查询耗时39毫秒,因为dnserver没有该域名的记录,因此必须代理查询到上游DNS服务器。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
dnserver-0.4.0.tar.gz (13.4 kB 查看哈希值)
构建分发
dnserver-0.4.0-py3-none-any.whl (8.6 kB 查看哈希值)
关闭
dnserver-0.4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bef5b7385c074be7b521628ead203bdd4511e335e8556953ccc59b41cbe10dca |
|
MD5 | 5547689b8e4f08e6cd483519fdadcadf |
|
BLAKE2b-256 | d2bd998ed6dd94a1717c1ab2acdad385148f776246ea884ec16463d1011aa5cc |
关闭
dnserver-0.4.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cbed0833bb9e510bbbecb8a7d7ec6c51a807146f2e7d4448afac4cee5a0ca9eb |
|
MD5 | 129784d7d2246cb64577323077b3b38f |
|
BLAKE2b-256 | 840ffa73f02422ed83c5774ddf1dc6bb70edd444b8d66b3063550450cf5b5c7f |