ฉันจะรับชื่อคอมพิวเตอร์ใน. NET c # ได้อย่างไร
ฉันจะรับชื่อคอมพิวเตอร์ใน. NET c # ได้อย่างไร
คำตอบ:
System.Environment.MachineName
จากคอนโซลหรือแอป WinFormsHttpContext.Current.Server.MachineName
จากเว็บแอปSystem.Net.Dns.GetHostName()
เพื่อรับ FQDNดูวิธีการหา FQDN ของเครื่องโลคอลใน C # /. NET หากสุดท้ายไม่ได้ให้ FQDN แก่คุณและคุณต้องการ
ดูรายละเอียดเกี่ยวกับความแตกต่างระหว่าง SystemInformation.ComputerName, Environment.MachineName และ Net.Dns.GetHostName
Dns.GetHostName()
ว่าไม่ได้ให้ชื่อที่ผ่านการรับรองครบถ้วน
System.Environment.MachineName
หรือถ้าคุณกำลังใช้ Winforms คุณสามารถใช้ซึ่งผลตอบแทนที่ว่าค่าเช่นเดียวกับSystem.Windows.Forms.SystemInformation.ComputerName
System.Environment.MachineName
System.Environment.MachineName
open system
...let system_name = System.Environment.MachineName
วิธีการบางอย่างได้รับด้านล่างเพื่อรับชื่อเครื่องหรือชื่อคอมพิวเตอร์
วิธีที่ 1: -
string MachineName1 = Environment.MachineName;
วิธีที่ 2: -
string MachineName2 = System.Net.Dns.GetHostName();
วิธีที่ 3: -
string MachineName3 = Request.ServerVariables["REMOTE_HOST"].ToString();
วิธีที่ 4: -
string MachineName4 = System.Environment.GetEnvironmentVariable("COMPUTERNAME");
สำหรับข้อมูลเพิ่มเติมดูบล็อกของฉัน
string name = System.Environment.MachineName;
มีอีกวิธีหนึ่งคือ Windows Management Instrumentation
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
}
ลองสิ่งนี้:
string[] computer_name = System.Net.Dns.GetHostEntry(System.Web.HttpContext.Current.Request.ServerVariables["remote_addr"]).HostName.Split(new Char[] { '.' });
return computer_name[0].ToString();
ฉันตั้งค่า. InnerHtml ของ<p>
วงเล็บสำหรับโปรเจ็กต์เว็บของฉันเป็นชื่อคอมพิวเตอร์ของผู้ใช้ที่ทำสิ่งต่อไปนี้:
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>
ค#:
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 วิธีที่เป็นประโยชน์เพิ่มเติม: System.Environment.GetEnvironmentVariable ("ComputerName")
System.Environment.GetEnvironmentVariable ("ClientName") เพื่อรับชื่อพีซีของผู้ใช้หากพวกเขาเชื่อมต่อผ่าน Citrix XenApp หรือ Terminal Services (aka RDS, RDP, Remote Desktop)
ลองอันนี้.
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;
}