Verwenden von Platzhaltern in Namen in der Windows-Hostdatei


53

Gibt es eine Möglichkeit, eine Platzhalterdomäne in der Windows-Hosts-Datei zu erstellen.

Ich habe es versucht

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

Das funktioniert nicht, gibt es vielleicht eine andere Syntax, die ich verwenden sollte?

Ich arbeite an Windows 7


1
Ich habe gerade eine Frage dazu mit DNSmasq auf ServerFault beantwortet (natürlich nicht unter Windows, aber auf einem Router mit DD-WRT / OpenWRT ist dies machbar)
quack quixote

XP SP2 enthielt eine Kastration der Hostdatei - securityfocus.com/archive/1/431032/30/0/threaded Vermutlich wurde sie verwendet, um Anzeigen beim Surfen zu blockieren. Dies ist eine Vermutung, soweit ich weiß, dass Microsoft nie enthüllt hat, warum sie dies getan haben und warum sie es seitdem auf alles übertragen. Wenn Sie in der Lage sind, einen Proxy-Server zwischen Ihrem PC und dem Internet einzurichten, können Sie einen Block für das einbauen, was Sie möchten.
bvaughn

Antworten:


61

Da ist nicht. Die hosts-Datei ist nicht sehr clever, Sie müssen jede Subdomain einzeln auflisten (einschließlich www und no-www)


16

Die Antwort auf eine sehr ähnliche StackOverflow-Frage hat mir sehr gut gefallen .

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

Wildcard Support unter XP bei hostsfile. Genießen.

Grundsätzlich funktioniert dieses Programm Acrylic als DNS-Proxy für Ihren lokalen Rechner. Zeigen Sie einfach mit Ihrer LAN-Verbindung auf 127.0.0.1, und bearbeiten Sie die Datei AcrylicHosts.txt auf sehr ähnliche Weise wie die reguläre Hosts-Datei - nur mit Platzhaltern!


2
Acryl funktioniert gut, kann Sie jedoch verwirren, wenn Sie versuchen, auf einen Computer mit einer dynamischen IP-Adresse zuzugreifen. Ich habe Computer mit meinem Heimnetzwerk verbunden und verwende eine dynamische DNS, um die IP-Adresse für den Domänennamen festzulegen. Ich benutze Acrylic auf meinem Laptop und war einige Tage weg, in der Zwischenzeit hat sich meine IP geändert, aber Acrylic hat sich daran erinnert, dass es die alte IP ist und ich konnte nicht auf die Site zugreifen. Aber das Ausführen des Programms "Purge Acrylic Cache Data" hat das Problem behoben.
leeand00,

Leider unterstützt Acryl keine DNS-Aliase, was es für mich unbrauchbar macht.
Spero

10

Dnsmasq ist das, was Sie brauchen, aber es funktioniert unter Windows nicht ganz gut. Also habe ich unter Windows eine Alternative namens DNSAgent geschrieben .

Sie können reguläre Ausdrücke in Regeln verwenden. Es gibt auch einige erweiterte Funktionen wie das Anpassen der Cache-TTL, des DNS-Servers mit nicht standardmäßigen Ports, der Mutation der Komprimierungszeiger usw. Open Sourcing unter MIT-Lizenz.


1

erstens stimme ich phoshi zu, dass es nicht möglich ist, in der hosts-datei von windows das zu tun, was man will (weder unter unix noch unter windows).

Zweitens müssen Sie die Kontrolle über das Ergebnis einer Anfrage an DNS erhalten. Eine Möglichkeit besteht darin, Ihre eigene DNS-Auflösung auf Ihrem Router zu verwenden (dnsmasq, dnscache + tinydns, bind, was auch immer, siehe Kommentar von quack) und diese zu optimieren oder einen DNS-Resolver für Windows zu verwenden, den Sie nach Belieben steuern können.

siehe hier für eine Liste von dns-Resolver, überprüfen Sie die „Wildcard“ Spalte, vielleicht powerdns oder maradns oder posadis ist etwas, das Ihren Bedürfnissen entspricht.


-1

Es ist eine andere Syntax: xxx.xxx.xxx.xxx somedomain.com

Einige Beispiele zur Erklärung:

  • 127.0.0.1 .com Diese Zeile blockiert alle ausgehenden dnsrequests, die mit .com enden
  • 127.0.0.1 somesite.com blockiert alle ausgehenden dnsrequests, die mit somesite.com enden
  • 12.2.3.1 www.dns.com führt alle ausgehenden dnsrequests, die mit www.dns.com enden, zu 12.2.3.1

Sie blockieren / leiten alle URLs der zweiten (dritten, vierten ...) Ebene mit der URL der obersten (zweiten, dritten ...) Ebene in der Hosts-Datei.


Angesichts des letzten Satzes gehe ich davon www.example.comaus, dass die erste Zeile nicht blockiert, sondern nur beim Hinzufügen 127.0.0.1 example.com?
Arjan

9
moonfern, ich stimme deiner Liste nicht zu. 127.0.0.1 somesite.com blockiert NICHT alle ausgehenden DNS-Anforderungen, die mit somesite.com enden. Es wird nur somesite.com blockiert , nicht www.somesite.com oder subdomain.somesite.com oder dergleichen.

1
Unter Windows ist das definitiv nicht der Fall, moonfern.
Owen Blacker

-3

Wenn Sie jede Unterdomäne in somedomain.com blockieren möchten, sollten Sie prüfen, ob Sie "*" weglassen. wird erreichen, was Sie wollen.

Bearbeiten Sie Ihr Beispiel:

xxx.xxx.xxx.xxx somedomain.com

"Überlegen Sie, ob ..." ist ziemlich mehrdeutig. Was genau empfehlen Sie als Lösung?
Fixer1234

Bitte lesen Sie die Frage noch einmal sorgfältig durch. Ihre Antwort beantwortet nicht die ursprüngliche Frage.
DavidPostill

1
fixer1234 - Ich weiß nicht, was das Problem ist, das das Poster lösen möchte, während sie fragen, als ob explizite Platzhalter es ansprechen würden. "Überlegen Sie, ob ..." schlägt etwas vor, das funktionieren könnte. Es ist einfach zu versuchen und erfordert nur wenige Zeichen. Ich weiß, dass es in einigen Fällen funktioniert. Da ich nicht genug Kontext habe, um das Problem zu verstehen, kann ich keine Lösung empfehlen. David Postill - Ich glaube, meine Antwortadressen sind relevant für die ursprüngliche Frage. Aber vielleicht funktioniert Ihre eigene Antwort besser.
SquarePowder
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.