Usando curingas em nomes no arquivo de hosts do Windows


54

Existe uma maneira de criar um domínio curinga no arquivo de hosts do Windows.

Eu tentei isso

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

Isso não funciona. Existe alguma outra sintaxe que devo usar?

Estou trabalhando no Windows 7


1
eu só respondeu a uma pergunta sobre fazendo isso com dnsmasq em ServerFault (não no Windows, obviamente, mas em um roteador rodando DD-WRT / OpenWRT é factível)
quack quixote

O XP SP2 incluiu uma castração do arquivo host - securityfocus.com/archive/1/431032/30/0/threaded Razão presumida de que as pessoas o estavam usando para bloquear anúncios enquanto navegava. Este é um palpite, até onde eu sei, a Microsoft nunca revelou por que eles fizeram isso e por que estão avançando em tudo desde então. Se você conseguir instalar um servidor proxy entre o PC e a Internet, poderá bloquear o que deseja.
bvaughn

Respostas:


61

Não há. O arquivo hosts não é muito inteligente, você precisa listar todos os subdomínios individualmente (incluindo www e no-www)


16

Uma resposta para uma pergunta StackOverflow muito semelhante funcionou bem para mim.

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

Suporte de curinga no XP no arquivo de hosts. Desfrutar.

Basicamente, este programa Acrylic funciona como um proxy DNS para sua máquina local. Apenas aponte sua Conexão local para 127.0.0.1 e edite o AcrylicHosts.txt de uma maneira muito semelhante ao arquivo normal de hosts - apenas com curingas!


2
O acrílico funciona muito bem, mas pode confundi-lo se você estiver tentando acessar uma máquina com um endereço IP dinâmico. Tenho máquinas conectadas à minha rede doméstica e uso um DNS dinâmico para definir o IP para o nome de domínio. Eu uso o Acrylic no meu laptop e fiquei fora por alguns dias, enquanto o meu ip mudou, mas o Acrylic lembrou-o como sendo o ip antigo e não consegui acessar o site. Mas a execução do programa "Purge Acrylic Cache Data" resolveu o problema.
precisa saber é

Infelizmente, o acrílico não suporta aliases de DNS, o que o torna inútil para mim.
Spero

11

Dnsmasq é o que você precisa, mas não funciona muito bem no Windows. Então, escrevi uma alternativa no Windows chamada DNSAgent .

Você pode usar expressão regular nas regras. Existem também alguns recursos avançados, como a personalização do TTL do cache, servidor DNS de porta não padrão, mutação do ponteiro de compactação, etc. Fonte aberta sob licença MIT.


1

primeiro, concordo com phoshi que não é possível fazer o que você deseja no arquivo hosts do windows (nem no unix).

em segundo lugar, você precisa obter controle sobre o resultado de uma solicitação para o DNS. Uma opção é usar a sua própria resolução de DNS no seu roteador (dnsmasq, dnscache + tinydns, bind, qualquer que seja, consulte o comentário do charlatão) e ajustá-lo ou usar um resolvedor de dns nas janelas que você pode controlar como quiser.

veja aqui para uma lista de DNS-resolvedores, verifique a coluna "wildcard", talvez PowerDNS ou maradns ou posadis é algo que satisfaça suas necessidades.


-1

É outra sintaxe: xxx.xxx.xxx.xxx somedomain.com

Alguns exemplos para explicá-lo:

  • 127.0.0.1 .com esta linha bloqueará todos os dnsrequests de saída que terminem com .com
  • 127.0.0.1 somesite.com bloqueará todos os dnsrequests de saída que terminam com somesite.com
  • 12.2.3.1 www.dns.com levará todos os dnsrequests de saída que terminam com www.dns.com para 12.2.3.1

Você bloqueia / lidera todos os URLs de segundo (terceiro, quarto ...) nível com o URL de nível superior (segundo, terceiro ...) no arquivo de hosts.


Dada a última frase, presumo que www.example.comnão seja bloqueada pela primeira linha, mas apenas ao adicionar 127.0.0.1 example.com?
21410 Arjan

9
moonfern, eu não concordo com sua lista. 127.0.0.1 somesite.com NÃO bloqueará todas as solicitações DNS de saída que terminem com somesite.com, tudo o que bloqueará será somesite.com , não www.somesite.com ou subdomain.somesite.com ou algo semelhante.

1
Esse definitivamente não é o caso do Windows, moonfern.
Owen Blacker 27/05

-3

Se você deseja bloquear todos os subdomínios no somedomain.com, considere omitir "*". vai conseguir o que você quer.

Editando seu exemplo:

xxx.xxx.xxx.xxx somedomain.com

"Considere se ..." é bastante ambíguo. O que exatamente você está recomendando como solução?
fixer1234

Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original.
DavidPostill

1
fixer1234 - Não sei qual é o problema que o pôster deseja resolver, enquanto eles perguntam como se o curinga explícito o solucionasse. "Considere se ..." sugere algo que pode funcionar. É fácil de experimentar e requer poucos caracteres. Eu sei que funciona em alguns casos. Como não tenho contexto suficiente para entender o problema, não posso recomendar uma solução. David Postill - Creio que minha resposta se refere e é pertinente à pergunta original. Mas talvez sua própria resposta funcione melhor.
SquarePowder
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.