如何在Windows 10通用应用程序中使用C#获取本地主机名

8
string machineName = System.Environment.MachineName;

这段代码对我来说无法工作,错误代码“Environment”不包含“MachineName”的定义。

我正在使用带有C#的Visual Studio 2015和通用应用程序。

请在发布答案时同时列出我需要使用的命名空间。

需要使用的命名空间:System.Environment

1
猜测一下 - https://msdn.microsoft.com/zh-cn/library/windows/apps/windows.networking.connectivity.networkinformation.gethostnames.aspx? - quetzalcoatl
似乎不起作用。即使我使用Windows.Networking.Connectivity命名空间,也找不到该函数。 - Jerry
1个回答

20

您需要使用NetworkInformation.GetHostNames

var hostNames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames();

需要注意的是,这种方法将返回多个HostName

在我的情况下,它返回四个HostName,其中DisplayNameMyComputerNameMyComputerName.local以及两个IP地址。

因此,我猜它可能是安全的 -

using Windows.Networking;
using Windows.Networking.Connectivity;


var hostNames = NetworkInformation.GetHostNames();
var hostName = hostNames.FirstOrDefault(name => name.Type == HostNameType.DomainName)?.DisplayName ?? "???";

你必须包含 'using System.Linq;' 才能使其正常工作,我猜应该是这样。 - Wanderson López

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接