cr-dns

所属分类:网络编程
开发工具:Crystal
文件大小:0KB
下载次数:0
上传日期:2018-11-20 02:49:51
上 传 者sh-1993
说明:  WIP:DNS解析器和服务器的Crystal库,
(WIP: Crystal library for DNS resolvers and servers,)

文件列表:
.editorconfig (150, 2018-11-19)
.travis.yml (18, 2018-11-19)
LICENSE (1076, 2018-11-19)
REFERENCE.md (1670, 2018-11-19)
shard.yml (180, 2018-11-19)
spec/ (0, 2018-11-19)
spec/cache_spec.cr (858, 2018-11-19)
spec/dns_server_and_resolver_spec.cr (2763, 2018-11-19)
spec/dns_spec.cr (2365, 2018-11-19)
spec/iterative_resolver_spec.cr (1533, 2018-11-19)
spec/mock/ (0, 2018-11-19)
spec/mock/network_factory.cr (471, 2018-11-19)
spec/rr_spec.cr (1377, 2018-11-19)
spec/spec_helper.cr (415, 2018-11-19)
spec/zone_spec.cr (6719, 2018-11-19)
src/ (0, 2018-11-19)
src/dns.cr (144, 2018-11-19)
src/dns/ (0, 2018-11-19)
src/dns/cache.cr (1853, 2018-11-19)
src/dns/debug.cr (246, 2018-11-19)
src/dns/extra/ (0, 2018-11-19)
src/dns/extra/channel.cr (331, 2018-11-19)
src/dns/extra/io.cr (768, 2018-11-19)
src/dns/message.cr (5885, 2018-11-19)
src/dns/name.cr (1290, 2018-11-19)
src/dns/resolver.cr (136, 2018-11-19)
src/dns/resolver/ (0, 2018-11-19)
src/dns/resolver/channel.cr (135, 2018-11-19)
src/dns/resolver/factory.cr (196, 2018-11-19)
src/dns/resolver/iterative_resolver.cr (3055, 2018-11-19)
src/dns/resolver/network_factory.cr (237, 2018-11-19)
src/dns/resolver/remote.cr (1456, 2018-11-19)
src/dns/resolver/tcp_channel.cr (607, 2018-11-19)
src/dns/resolver/udp_channel.cr (455, 2018-11-19)
src/dns/rr.cr (3206, 2018-11-19)
src/dns/rr/ (0, 2018-11-19)
src/dns/rr/a.cr (899, 2018-11-19)
src/dns/rr/aaaa.cr (616, 2018-11-19)
... ...

# dns Work In Progress - This is not yet a usable library Features: * Basic server and resolver functionality over TCP and UDP (not yet standards compliant) * Zone file reader * Currently supported Resource Records: A, CNAME, MX, NS, PTR, SOA, and TXT * Partially supported Resource Records: AAAA, HINFO, and OPT * Simple DNS response caching ## Installation Add this to your application's `shard.yml`: ```yaml dependencies: dns: github: teknomunk/cr-dns ``` ## Usage ### Client ```crystal require "dns" resolv = DNS::Resolver.new( DNS::Resolver::TCPChannel.new( "127.0.0.0", 5353 ) ) resolv.send_request( DNS::Message.simple_query( "A", "example.com." ) ) msg = resolv.get_response() if msg.answers.size > 0 && (rr=msg.answers[0]).is_a?(DNS::RR::A) puts rr.ip_address end ``` ### Server ```crystal require "dns" server = DNS::Server.new() server.listen_udp( "0.0.0.0", 5353 ) server.listen_tcp( "0.0.0.0", 5353 ) server.add_zone( DNS::Zone.new( File.open("test.zone") ) ) server.run() ``` ## Contributing 1. Fork it () 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request ## Contributors - [teknomunk](https://github.com/teknomunk) teknomunk - creator, maintainer

近期下载者

相关文件


收藏者