0

我得到了UserPrincipal类对象,想找到机器名或ip地址或mac地址。这些中的任何一个。是否有可能这样做,如果可以,怎么做?如果我要求任何不可能的模糊事物,我深表歉意。

4

3 回答 3

3

UserPrincipal 对象仅标识用户,而不是机器(除非您的网络管理员已决定将 PC 标识为用户)。

因此,您的问题确实没有标准答案。如果有用户 -> pc 链接,它可能存储在 Active Directory 或某处的数据库中。请联系您的系统管理员以了解如何建立该链接。

于 2013-09-02T12:04:24.560 回答
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上面看到的属性。

于 2013-09-02T11:53:45.887 回答
-1

尝试这个:

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

可能这就是你的意思:

太从这里

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;
于 2013-09-02T11:47:40.983 回答