我得到了UserPrincipal
类对象,想要找到机器名或IP地址或mac地址。
其中任何一个。
有可能这样做,如果是的话怎么样?
如果我要求任何不可能的含糊不清的东西,请道歉。
答案 0 :(得分:3)
UserPrincipal对象仅识别用户,而不是机器(除非您的网络管理员决定将PC识别为用户)。
所以你的问题确实没有标准答案。如果有用户 - > pc链接,它可能存储在Active Directory或某个数据库中。请与您的系统管理员联系,了解如何建立该链接。
答案 1 :(得分:0)
要查找主计算机的名称,请使用
string hostName = System.Net.Dns.GetHostName();
如果您要查找主机的IP地址,请使用:
var address = System.Dns.GetHostEntry(hostName)
.AddressList
.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);
这为您提供了类型“InterNetwork
”的第一个地址 - 即第一个已知的IP地址。当然,可能有多个IP地址链接到主机,在这种情况下,您应该迭代上面看到的AddressList
属性。
答案 2 :(得分:-1)
试试这个:
string sysname = Environment.MachineName;
string sysname = System.Net.Dns.GetHostName();
string sysname = System.Windows.Forms.SystemInformation.ComputerName;
string sysname = System.Environment.GetEnvironmentVariable("COMPUTERNAME');
可能这就是你的意思:
来自here
ArrayList nets = new ArrayList();
DirectoryEntry entryPC;
entryPC = new DirectoryEntry();
entryPC.Path = "WinNT://domainName";
foreach (DirectoryEntry child in entryPC.Children)
{
if (child.Name != "Schema")
nets.Add(child.Name);
}
return nets;