上代码:
public static string GetCurrentIPv4Address()
{
// 获取所有网络接口
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
// 遍历网络接口,查找活动的、非回环、IPv4的地址
foreach (NetworkInterface ni in interfaces)
{
// 确保接口是活动的且不是回环接口
if (ni.OperationalStatus != OperationalStatus.Up || ni.NetworkInterfaceType == NetworkInterfaceType.Loopback)
continue;
// 获取接口的IP属性
IPInterfaceProperties properties = ni.GetIPProperties();
// 查找IPv4地址
foreach (UnicastIPAddressInformation uniCast in properties.UnicastAddresses)
{
// 如果是IPv4地址且不是回环地址
if (uniCast.Address.AddressFamily == AddressFamily.InterNetwork && !IPAddress.IsLoopback(uniCast.Address))
{
// 返回第一个找到的符合条件的IPv4地址
return uniCast.Address.ToString();
}
}
}
// 如果没有找到合适的IPv4地址,则返回空字符串或抛出异常,根据需求选择
return string.Empty;
}