Wie ändere ich die hosts-Datei in einem Windows-Programm?

8

Wie würde ein Programm in C ++ / C / c # -Programm den Inhalt von hosts-Dateien in Windows ändern? Ich weiß, das klingt nach Phishing, ehrlich gesagt nicht.

    
JRDH 29.06.2011, 21:02
quelle

6 Antworten

11

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%     
David Anderson - DCOM 29.06.2011 21:29
quelle
10

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.

    
Lotfi 29.06.2011 21:12
quelle
8

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.

    
Eric Petroelje 29.06.2011 21:10
quelle
4

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.

    
driis 29.06.2011 21:07
quelle
3

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.

    
Kristian Williams 20.06.2013 08:52
quelle
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.

    
Jishnu U Nair 12.08.2015 08:41
quelle

Tags und Links