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

Jer*_*rry 8 c# windows hostname uwp

string machineName = System.Environment.MachineName;
Run Code Online (Sandbox Code Playgroud)

此代码对我不起作用,错误代码'Environment'不包含'MachineName'的定义

我正在使用Visual Studio 2015和Universal App with C#

还请列出发布答案时我需要使用的命名空间.

Jus*_* XL 16

你需要使用NetworkInformation.GetHostNames.

var hostNames = Windows.Networking.Connectivity.NetworkInformation.GetHostNames();
Run Code Online (Sandbox Code Playgroud)

但请注意,此方法将返回多个HostNames.

在我的例子中,它返回四个HostNames,其中DisplayNames是 MyComputerName,MyComputerName.local加上两个IP地址.

所以我想这可能是安全的 -

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


var hostNames = NetworkInformation.GetHostNames();
var hostName = hostNames.FirstOrDefault(name => name.Type == HostNameType.DomainName)?.DisplayName ?? "???";
Run Code Online (Sandbox Code Playgroud)