2010-04-28 15:08:18 +0000 2010-04-28 15:08:18 +0000
58
58

在Windows主机文件的名称中使用通配符

有没有办法在Windows主机文件中创建一个通配符域。

我试过这样

xxx.xxx.xxx.xxx *.somedomain.com

这行不通,我是否应该使用其他语法?

我在Windows 7上工作。

答案 (6)

63
63
63
2010-04-28 15:14:13 +0000

没有。hosts文件不是很聪明,你必须单独列出每个子域名(包括www和no-www)。

17
17
17
2011-11-14 19:46:57 +0000

非常类似的StackOverflow问题的答案对我来说很有效。

http://mayakron.altervista.org/support/browse.php?path=Acrylic&name=UserManual

hostsfile上的XP通配符支持。享受吧。

基本上,这个程序 Acrylic 可以作为你本地机器的DNS代理。只需将您的局域网连接指向127.0.0.1,然后编辑AcrylicHosts.txt,其方式与常规的hosts文件非常相似–只是使用了通配符!

11
11
11
2015-06-22 07:11:36 +0000

Dnsmasq 是你所需要的,但它在Windows上工作得不是很好。所以我在Windows上写了一个替代方案,叫做 DNSAgent

你可以在规则中使用正则表达式。还有一些高级功能,比如自定义缓存TTL,非标准端口DNS服务器,压缩指针突变等。在MIT许可下开源。

2
2
2
2010-04-28 15:48:51 +0000

首先,我同意phoshi的观点,在windows的hosts-file中不可能做到你想要的东西(在unix上也不可能)。

其次,你必须控制向dns请求的结果。一个选择是在你的路由器上使用你自己的dns-resolving (dnsmasq, dnscache+tinydns, bind, 什么的,见quack的评论),然后调整它,或者在windows上使用一个你可以控制的dns-resolver。

参见 这里 ,查看dns-resolvers的列表,检查 “通配符 "一栏,也许 powerdns maradns posadis 是符合你需求的。

-1
-1
-1
2010-07-21 20:49:07 +0000

这是另一种语法。xxx.xxx.xxx.xxx.xxx somedomain.com

一些例子来解释它:

  • 127.0.0.1 .com 这一行将阻止所有以.com结尾的外发dnsrequests
  • 127.0.0.1 somesite.com 将阻止所有以 somesite.com结尾的外发dnsrequests
  • 12.2.3.1 www. dns.com 将引导所有以 www.dns.com 结尾的出站 dnsrequests 到 12.2.3.1

您在 hosts 文件中用顶级(second,three…)级别的 url 屏蔽/引导所有二级(三级,四级…)的 urls。

-3
-3
-3
2016-09-10 22:01:44 +0000

如果你想屏蔽somedomain.com中的每一个子域名,那么考虑一下省略"*. “是否会达到你想要的目的。

编辑你的例子:

xxx.xxx.xxx.xxx somedomain.com
```。