.net core 中获取IPv4的地址而不是结果为::1的并且列出调用的命名空间
时间: 2024-12-10 14:29:36 浏览: 20
在.NET Core中,如果你想要获取网络接口的实际IPv4地址而不是默认的"::1"(即仅IPv6支持的情况),你可以使用System.Net.NetworkInformation命名空间下的IPHelper类。这个类提供了一些方便的方法来获取网络信息。
以下是获取IPv4地址的基本步骤:
```csharp
using System;
using System.Net.NetworkInformation;
public static class IPAddressHelper
{
public static string GetFirstAvailableIPv4Address()
{
var ipProperties = NetworkInterface.GetNetworkInterfaces();
foreach (var nic in ipProperties)
{
if (nic.OperationalStatus == OperationalStatus.Up && nic.NetworkInterfaceType != NetworkInterfaceType.Loopback)
{
var ipAddresses = nic.GetIPProperties().UnicastAddresses;
foreach (var address in ipAddresses)
{
if (address.AddressFamily == AddressFamily.InterNetwork)
{
return ((IPAddress)address).ToString(); // 返回IPv4地址
}
}
}
}
// 如果没有找到IPv4地址,可以返回默认的"0.0.0.0"
return "0.0.0.0";
}
}
```
当你需要调用这个功能时,只需从`IPAddressHelper`类中调用`GetFirstAvailableIPv4Address()`方法即可。
阅读全文