当前位置: 首页 > 软件库 > 服务器软件 > DNS服务器 >

DNSoverHTTP

HTTP 协议的 DNS 实现
授权协议 GPL
开发语言 C/C++
所属分类 服务器软件、 DNS服务器
软件类型 开源软件
地区 不详
投 递 者 谭琛
操作系统 Linux
开源组织
适用人群 未知
 软件概览

DNSoverHTTP 是基于 HTTP 协议的 DNS 实现。它是一个代理 DNS,是一个在 HTTP 基础上实现 DNS 的方法,提供了:

  1. 一个 FastCGI 端点连接 Web 服务器和 DNS 服务器(Nginx、Apache 和 Bind)

  2. 一个 DNS 代理服务器用于 /etc/resolv.conf 或者 DHCP 声明,使用 upstream HTTP 来解析 DNS

The great advantage to this approach is that HTTP usually makes it through even the worst coffee shop or hotel room firewalls, since commerce may be at stake. We also benefit from HTTP's persistent TCP connection pool concept, which DNS on TCP/53 does not have. Lastly, HTTPS will work, giving privacy.

This software is as yet unpackaged, but is portable to FreeBSD 10 and Debian 7 and very probably other BSD-similar and Linux-similar systems. This software is written entirely in C and has been compiled with GCC and Clang with "full warnings" enabled.

 相关资料
  • 在周星驰的电影《唐伯虎点秋香》中,周星驰饰演的主角一进入华府,就被强制增加了一个代号9527。从此,华府的人开始称呼主角为9527,而不是他的姓名。 域名(domain name)是IP地址的代号。域名通常是由字符构成的。对于人类来说,字符构成的域名,比如www.yahoo.com,要比纯粹数字构成的IP地址(106.10.170.118)容易记忆。域名解析系统(DNS, domain name

  • 问题内容: 好的,这是个大问题。我有一个用ObjC(this)编写的库。在那里,我们有一个已定义的协议。当我尝试在快速文件中使用它时,我经常得到: 类型“ XXX”不符合协议“ XXX” 为简化起见,我组成了一个测试项目-应该将其创建为Swift项目。 然后使用以下协议在内部创建ObjC头文件(我称其为StupidProtocol.h)(请注意,每个名称和值都应与给定的值完全匹配,包括大写/小写)

  • Git 可以使用四种主要的协议来传输资料:本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 Git 协议。 在此,我们将会讨论那些协议及哪些情形应该使用(或避免使用)他们。 本地协议 最基本的就是 本地协议(Local protocol) ,其中的远程版本库就是硬盘内的另一个目录。 这常见于团队每一个成员都对一个共享的文件系统(例如一个挂载的 NFS)拥有访问权,或

  • 协议为方法、属性、以及其他特定的任务需求或功能定义蓝图。协议可被类、结构体、或枚举类型采纳以提供所需功能的具体实现。满足了协议中需求的任意类型都叫做遵循了该协议。 除了指定遵循类型必须实现的要求外,你可以扩展一个协议以实现其中的一些需求或实现一个符合类型的可以利用的附加功能。 协议的语法 定义协议的方式与类、结构体、枚举类型非常相似: protocol SomeProtocol { //

  • 本页包含内容: 协议的语法(Protocol Syntax) 对属性的规定(Property Requirements) 对方法的规定(Method Requirements) 对突变方法的规定(Mutating Method Requirements) 对构造器的规定(Initializer Requirements) 协议类型(Protocols as Types) 委托(代理)模式(Dele

  • 问题内容: 这是一个通用的问题。我并不是在寻找最佳答案,而是希望您表达自己喜欢的做法。 我想用Java实现网络协议(但这是一个相当普遍的问题,我在C ++中也遇到了同样的问题),这不是我第一次这样做,这不是第一次。但是我认为我缺少实现它的好方法。实际上,通常所有这些都是关于在主机之间交换文本消息和一些字节缓冲区,存储状态并等待下一条消息到来的。问题是,我通常会遇到很多麻烦,如果if语句对不同的状态

  • 问题 你想构建一个能支持迭代操作的自定义对象,并希望找到一个能实现迭代协议的简单方法。 解决方案 目前为止,在一个对象上实现迭代最简单的方式是使用一个生成器函数。 在4.2小节中,使用Node类来表示树形数据结构。你可能想实现一个以深度优先方式遍历树形节点的生成器。 下面是代码示例: class Node: def __init__(self, value): self._

  • 协议(Protocols)为方法,属性和其他需求功能提供了蓝图。 它为方法或属性骨架而不是实现。 通过定义类,函数和枚举,可以进一步完成方法和属性的实现。 协议的一致性满足了协议要求的方法或属性。 语法 协议也遵循与类,结构和枚举类似的语法 - 协议在类,结构或枚举类型名称之后声明。 单个和多个协议声明也是可以的。 如果定义了多个协议,则必须用逗号分隔。 当要为超类定义协议时,协议名称应使用逗号跟