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


53

有没有一种方法可以在Windows主机文件中创建通配符域。

我试过了

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

这不起作用,也许我应该使用其他语法吗?

我在Windows 7上工作


1
我刚刚在ServerFault 上用DNSmasq回答了一个有关问题的问题(显然不是在Windows上,但是在运行DD-WRT / OpenWRT的路由器上是可行的)
quack quixote 2010-4-28

XP SP2包含主机文件的阉割- securityfocus.com/archive/1/431032/30/0/threaded 假设的原因是人在使用它,而浏览屏蔽的广告。据我所知,这是一个猜测,微软从未透露过为什么这样做以及为何将其推广到此后的所有应用。如果您能够在PC和Internet之间放置一个代理服务器,则可以根据需要放置一个块。
bvaughn

Answers:


61

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


16

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

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

XP上的hostfile支持通配符。请享用。

基本上,此程序Acrylic用作本地计算机的DNS代理。只需将您的本地连接指向127.0.0.1,然后以与常规主机文件非常相似的方式编辑AcrylicHosts.txt-仅使用通配符!


2
亚克力的效果很好,但是如果您尝试使用动态IP地址访问计算机,可能会使您感到困惑。我有连接到家庭网络的计算机,并且使用动态dns设置域名的ip。我在笔记本电脑上使用了Acrylic,而我离开了几天,与此同时,我的IP发生了变化,但是Acrylic记得它是旧的ip,所以我无法访问该站点。但是,运行“清除丙烯酸缓存数据”程序可以解决该问题。
leeand00 2012年

不幸的是,丙烯酸不支持DNS别名,这对我来说毫无用处。
Spero

10

Dnsmasq是您所需要的,但在Windows上效果不佳。因此,我在Windows上编写了一个替代方案,称为DNSAgent

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


1

首先,我同意phoshi,它无法在Windows的hosts文件中做您想做的事情(在Unix上都不行)。

其次,您必须控制对dns请求的结果。一种选择是在路由器上使用自己的dns解析(dnsmasq,dnscache + tinydns,绑定,任何内容,请参阅quack的评论)并进行调整,或者在可以根据需要控制的窗口上使用dns解析器。

请参阅此处以获取dns解析器的列表,检查“通配符”列,也许powerdnsmaradnsposadis符合您的需求。


-1

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

一些例子来解释它:

  • 127.0.0.1 .com此行将阻止所有以.com结尾的传出dnsrequest
  • 127.0.0.1 somesite.com将阻止所有以somesite.com结尾的传出dnsrequest
  • 12.2.3.1 www.dns.com会将所有以www.dns.com结尾的dnsrequest引导至12.2.3.1

您使用主机文件中的最高(第二,第三...)级别的URL阻止/引导所有第二(第三,第四...)级别的URL。


给定最后一句话,我假设www.example.com它不会被第一行阻止,而仅当添加127.0.0.1 example.com
Arjan 2010年

9
Moonfern,我不同意您的清单。127.0.0.1 somesite.com将不会阻止所有以somesite.com结尾的传出DNS请求,它将阻止的只是somesite.com,而不是www.somesite.com或subdomain.somesite.com等。

1
Moonfern在Windows上绝对不是这种情况。
欧文·布莱克

-3

如果要阻止somedomain.com中的每个子域,请考虑是否省略“ *”。将实现您想要的。

编辑您的示例:

xxx.xxx.xxx.xxx somedomain.com

“考虑是否……”非常含糊。您究竟建议什么作为解决方案?
fixer1234 2013年

请仔细阅读问题。您的答案没有回答原始问题。
DavidPostill

1
fixer1234-我不知道张贴者希望解决什么问题,尽管他们询问好像明确的通配符将解决它。“考虑是否...”表示可能有用。易于尝试,并且只需几个字符。我知道它在某些情况下有效。由于我没有足够的背景信息来理解问题,因此我不推荐任何解决方案。大卫·波斯蒂尔(David Postill)-我相信我的回答可以解决且与原始问题有关。但是也许您自己的答案会更好。
SquarePowder
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.