¿Cómo obtengo el nombre de la computadora en .NET c #
¿Cómo obtengo el nombre de la computadora en .NET c #
Respuestas:
System.Environment.MachineName desde una consola o aplicación WinForms.HttpContext.Current.Server.MachineName desde una aplicación webSystem.Net.Dns.GetHostName() para obtener el FQDNConsulte ¿Cómo encontrar el FQDN de la máquina local en C # /. NET? si el último no le proporciona el FQDN y lo necesita.
Ver detalles sobre la diferencia entre SystemInformation.ComputerName, Environment.MachineName y Net.Dns.GetHostName
Dns.GetHostName() no daba el nombre completo.
System.Environment.MachineName
O, si está utilizando Winforms, puede usar System.Windows.Forms.SystemInformation.ComputerName, que devuelve exactamente el mismo valor que System.Environment.MachineName.
System.Environment.MachineName
open system...let system_name = System.Environment.MachineName
Algunos métodos se dan a continuación para obtener el nombre de la máquina o el nombre de la computadora
Método 1:-
string MachineName1 = Environment.MachineName;
Método 2: -
string MachineName2 = System.Net.Dns.GetHostName();
Método 3: -
string MachineName3 = Request.ServerVariables["REMOTE_HOST"].ToString();
Método 4: -
string MachineName4 = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
Para más ver mi blog
Puede tener acceso al nombre de la máquina usando Environment.MachineName .
Bueno, hay una forma más: Instrumentación de administración de Windows
using System.Management;
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT Name FROM Win32_ComputerSystem");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_ComputerSystem instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Name: {0}", queryObj["Name"]);
}
}
catch (ManagementException e)
{
// exception handling
}
Prueba esto:
string[] computer_name = System.Net.Dns.GetHostEntry(System.Web.HttpContext.Current.Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
return computer_name[0].ToString();
Establecí el .InnerHtml de un <p>soporte para mi proyecto web en el nombre de la computadora del usuario haciendo lo siguiente:
HTML:
<div class="col-md-4">
<h2>Your Computer Name Is</h2>
<p id="pcname" runat="server"></p>
<p>
<a class="btn btn-default" href="#">Learn more »</a>
</p>
</div>
C#:
using System;
using System.Web.UI;
namespace GetPCName {
public partial class _Default : Page {
protected void Page_Load(object sender, EventArgs e) {
pcname.InnerHtml = Environment.MachineName;
}
}
}
2 métodos más útiles: System.Environment.GetEnvironmentVariable ("ComputerName")
System.Environment.GetEnvironmentVariable ("ClientName") para obtener el nombre de la PC del usuario si están conectados a través de Citrix XenApp o Terminal Services (también conocido como RDS, RDP, Escritorio remoto)
Prueba este.
public static string GetFQDN()
{
string domainName = NetworkInformation.IPGlobalProperties.GetIPGlobalProperties().DomainName;
string hostName = Dns.GetHostName();
string fqdn;
if (!hostName.Contains(domainName))
fqdn = hostName + "." +domainName;
else
fqdn = hostName;
return fqdn;
}