Wie erhalte ich den lokalen Computernamen in C #?


Antworten:




45

Aus dem Linktext

Vier Möglichkeiten, um Ihren lokalen Netzwerk- / Computernamen abzurufen:

string name = Environment.MachineName;
string name = System.Net.Dns.GetHostName();
string name = System.Windows.Forms.SystemInformation.ComputerName;
string name = System.Environment.GetEnvironmentVariable("COMPUTERNAME");

Weitere Informationen finden Sie unter: Unterschied zwischen SystemInformation.ComputerName, Environment.MachineName und Net.Dns.GetHostName


13
Geben sie dasselbe zurück oder gibt es einen Unterschied zwischen allen?
Epotter

19

Wenn Sie den vollqualifizierten Domänennamen (FQDN) des lokalen Computers möchten, können Sie diesen verwenden

System.Net.Dns.GetHostEntry("localhost").HostName

Die anderen Methoden geben nur den lokalen Namen ohne domänenspezifische Informationen zurück. Für den Computer myComp.myDomain.comwerden beispielsweise die vorherigen Methoden zurückgegeben myComp, während die GetHostEntryMethode zurückgegeben wirdmyComp.myDomain.com


In den Computereinstellungen gibt es einen Abschnitt für Computername und vollständigen Computernamen. Dies ist die einzige Möglichkeit, den vollständigen Computernamen zu erhalten, wenn alle anderen nur den Computernamen angeben. Vielen Dank!
user2494584

1
hmm, gibt nur localhostfür mich, nicht FQDN.
Thufir

0

Mein Computername ist mehr als 15 Zeichen, also benutze ich hostname.exe, um den Namen in voller Länge zu erhalten:

Process proc = new Process();
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.FileName = "c:/windows/system32/hostname.exe";
proc.Start();
var hostName = proc.StandardOutput.ReadLine();
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.