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)
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!
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.
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.
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.
"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.
Respostas:
Não há. O arquivo hosts não é muito inteligente, você precisa listar todos os subdomínios individualmente (incluindo www e no-www)
fonte
Uma resposta para uma pergunta StackOverflow muito semelhante funcionou bem para mim.
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!
fonte
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.
fonte
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.
fonte
É outra sintaxe: xxx.xxx.xxx.xxx somedomain.com
Alguns exemplos para explicá-lo:
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.
fonte
www.example.com
não seja bloqueada pela primeira linha, mas apenas ao adicionar127.0.0.1 example.com
?Se você deseja bloquear todos os subdomínios no somedomain.com, considere omitir "*". vai conseguir o que você quer.
Editando seu exemplo:
fonte