如何拦截和操作 DNS 查询?

emt*_*unc 5 shortcut internal-dns

老实说,我不确定我是否正确地表达了这个问题,但基本上我想做的是:

当用户在浏览器的 URL 栏中输入诸如费用之类的内容时,我希望浏览器被定向到特定的网址(与 OpenDNS 快捷方式的工作方式非常相似)

Web 地址的 IP 地址不会在不同的“快捷方式”之间改变......即:

mycompany.com = 10.0.0.0

mycompany.com/expenses = 10.0.0.0

mycompany.com/tracker = 10.0.0.0
Run Code Online (Sandbox Code Playgroud)

当用户在浏览器地址栏中输入费用并按回车键时,我希望浏览器自动定向到上述指定地址。

这实现起来会很棘手吗?我希望我已经恰当地提出了我的问题:-)

补充说明:

  • 我们在 Windows 环境中

  • 我相信交换服务器正在作为办公室的 DNS 服务器运行

mfa*_*ver 8

如何为“expenses.mycompany.com”创建一个 DNS 条目,该条目将发送到一个重定向规则为费用.mycompany.com -> mycompany.com/expenses 的网络服务器?

只要客户设置了“mycompany.com”的 DNS 后缀,他们就会将“费用”转换为费用.mycompany.com,然后点击该网络服务器。

这意味着一些额外的 DNS 条目,以及网络服务器上的一些虚拟主机,除了重定向到“真实”的 URL 之外什么都不做?


小智 7

虽然不是您所追求的,但为什么不在您的内部服务器上使用 URL 缩短器呢?然后,您可以在托管 URL 缩短器的服务器上设置一个虚拟主机,并执行以下操作:

http://go/expenses
http://go/tracker
Run Code Online (Sandbox Code Playgroud)

URL 缩短器会将其重写为您所需的内部 URL。有一个.NET URL缩短的例子在这里

另一种选择是如 mfarver 所说,您需要设置一个指向主机的 DNS 记录,该主机读取主机标头请求,并进行适当的重定向。这需要通过 IIS 中的 URL 重写规则(或 apache,如果您想在 Windows 上运行它)或一些代码来完成所有工作。它们本质上都与 URL 缩短器做同样的事情。

  • 这个网站是关于解决问题的,这有时会涉及到沿线某处的妥协。我不会说这对 OP 来说是不合理的妥协。 (4认同)