Zuerst sollten Sie anfordern für Administratorrechte des Benutzers. Sie können dies über Ihre Programmklasse in Ihrer Anwendung tun. Der folgende Code fordert den Benutzer für den administrativen Zugriff auf, der Benutzer hat dann die Option, es zu erlauben oder abzulehnen. Wenn sie dies verweigern, führt dieses Beispiel die Anwendung nicht aus.
Sobald Ihre Anwendung im Verwaltungsmodus ausgeführt wird, wird ihr einfacher Text mit einfacher Formatierung angezeigt. Sie brauchen nicht einmal alle Microsoft-Kommentare, die in der Datei enthalten sind, und das einfache String-Parsing funktioniert gut. Die Kommentare von MSFT in der HOSTS-Datei sind die Dokumentation, die Sie wirklich benötigen, soweit die HOSTS-Datei selbst geht.
%Vor%Die Hosts-Datei hat ein sehr einfaches Format, in dem jede Zeile "ip-Host" -Datensätze enthalten kann
Alles, was Sie brauchen, ist das regelmäßige Anhängen von Dateien:
%Vor%Beachten Sie, dass Sie standardmäßig erhöhte Rechte benötigen, um in die hosts-Datei zu schreiben ...
Um die Wiederherstellung rückgängig zu machen, sollten Sie eine Sicherungskopie der Datei erstellen und sie wiederherstellen, sobald Sie fertig sind.
Die Datei befindet sich normalerweise in C:\Windows\System32\drivers\etc\hosts
. Anstatt den Teil C:\Windows
fest zu codieren, sollten Sie Environment.GetEnvironmentVariable("SystemRoot")
verwenden, um das Systemstammverzeichnis sicher zu bestimmen.
Ansonsten können Sie wie jede andere Datei darauf schreiben, vorausgesetzt, Sie haben die entsprechenden Berechtigungen.
Die hosts-Datei ist nur einfacher Text. Das Format jeder Zeile enthält die IP und den Hostnamen, zu dem die IP aufgelöst werden soll, getrennt durch Leerzeichen. #
bezeichnet einen Kommentar.
Beispiel:
%Vor% Die Datei befindet sich hier: C:\Windows\system32\drivers\etc\hosts
. Sie werden (mit gutem Grund) Administratorrechte benötigen, um darauf zu schreiben.
Die genaueste Methode, den Speicherort der HOSTS-Datei zu finden, besteht darin, den Registrierungsschlüssel HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath
zu lesen und hosts
an das Ende anzuhängen.
Dies wird immer auf den richtigen Speicherort für die aktuelle Maschinenkonfiguration verweisen und funktioniert für alle Windows NT-basierten Plattformen seit Windows NT 4.0.
Als ein Kerl, der mit diesem Problem kämpfte, einfachen Ausweg, kopieren Sie die Hosts-Datei in Temp-Ordner, ändern Sie es und kopieren Sie es mit Überschreiben zurück. Die Anwendung als Admin auszuführen, wird die beste sein.
Tags und Links c c# c++ windows hosts-file