89

Is there a way to create a wildcard domain in the Windows hosts file.

I tried this

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

This does not work, is there maybe some other syntax I should use?

I am working on Windows 7

2
  • 1
    i just answered a question on doing this with DNSmasq on ServerFault (not on windows, obviously, but on a router running DD-WRT/OpenWRT it's doable) Apr 28, 2010 at 15:19
  • 2
    XP SP2 included a castration of the host file - securityfocus.com/archive/1/431032/30/0/threaded Assumed reason is people were using it to block ads while browsing. This is a guess as far as I know Microsoft has never revealed why they did this and why they are rolling it forward to everything since. If you are able to put in a proxy server between your PC and the internet, then you could put in a block for what you wanted.
    – bvaughn
    Jun 8, 2016 at 15:22

5 Answers 5

85

There is not. The hosts file isn't very clever, you have to list every subdomain individually (including www and no-www)

1
  • 1
    XP SP1 included an upgrade to a castration of the host file.
    – abc
    Jun 8, 2020 at 10:01
23

An answer to a very similar StackOverflow question worked well for me.

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

Wildcard Support on XP at hostsfile. Enjoy.

Basically, this program Acrylic works as a DNS proxy for your local machine. Just point your Local Area Connection to 127.0.0.1, then edit the AcrylicHosts.txt in a very similar manner to the regular hosts file -- only with wildcards!

4
  • 2
    Acrylic works great, but can confuse you if you are trying to access a machine with a dynamic IP address. I have machines connected to my home network, and I use a dynamic dns to set the ip for the domain name. I use Acrylic on my laptop and I was gone for a few days, in the mean time my ip changed, but Acrylic remembered it as being the old ip, and I couldn't access the site. But running the "Purge Acrylic Cache Data" program took care of the problem.
    – leeand00
    Apr 13, 2012 at 17:00
  • Unfortunately acrylic does not support DNS aliases, which makes it useless to me.
    – Spero
    Dec 16, 2017 at 8:59
  • 1
    I checked Acrylic.exe on virustotal.com and it shows 3 detections: SecureAge APEX - Malicious, eGambit - Unsafe.AI_Score_63%, BitDefenderTheta - Gen:NN.ZelphiF.34106.OGW@aOJ8akl
    – Mikl
    Apr 18, 2020 at 14:25
  • @Mikl I'm not defending it, it may be dangerous in it's own right but it is also likely that Acrylic sometimes gets bundled with viruses to redirect users' traffic
    – JeffUK
    Jan 7, 2021 at 8:01
12

Dnsmasq is what you need but it doesn't work quite well on Windows. So I wrote an alternative on Windows called DNSAgent.

You can use regular expression in rules. There is also some advanced features like customizing cache TTL, non-standard-port DNS server, compression pointer mutation, etc. Open sourced under MIT license.

1
  • I know the repository is archived now but I still find this quite useful. Could you explain how does the rules.cfg file works?
    – Joe
    May 11, 2021 at 19:33
2

first, i agree with phoshi that its not possible to do what you want in the hosts-file of windows (neither on unix).

secondly, you have to get control over the result of a request to dns. one option is to use your own dns-resolving on your router (dnsmasq, dnscache+tinydns, bind, whatever, see quack's comment) and tweak it or to use a dns-resolver on windows which you can control as you want.

see here for a list of dns-resolvers, check for the "wildcard" column, maybe powerdns or maradns or posadis is something that fits your needs.

-3

It's another syntax: xxx.xxx.xxx.xxx somedomain.com

Some examples to explain it:

  • 127.0.0.1 .com this line will block all outgoing dnsrequests ending with .com
  • 127.0.0.1 somesite.com will block all outgoing dnsrequests ending with somesite.com
  • 12.2.3.1 www.dns.com will lead all outgoing dnsrequests ending with www.dns.com to 12.2.3.1

You block/lead all second (third,fourth...) level urls with the top(second,third...) level url in the hosts file.

3
  • Given the last sentence, I assume www.example.com is not blocked by the first line, but only when adding 127.0.0.1 example.com?
    – Arjan
    Jul 21, 2010 at 20:52
  • 13
    moonfern, I do not agree with your list. 127.0.0.1 somesite.com WILL NOT block all outgoing DNS requests ending with somesite.com, all it will block is somesite.com, not www.somesite.com or subdomain.somesite.com or the like.
    – user43866
    Jul 25, 2010 at 5:32
  • 3
    That is definitely not the case on Windows, moonfern. May 27, 2012 at 20:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .