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

Steve
quelle
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

Szilard Muzsi
quelle
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();
Alan Hu
quelle