在ASP.NET中获取内部网关地址,可以使用NetworkInterface
类来获取所有网络接口的信息,然后找到默认网关的IP地址。以下是一个示例代码:
using System;
using System.Net;
using System.Net.NetworkInformation;
public class Program
{
public static void Main()
{
string gatewayAddress = GetDefaultGatewayAddress();
Console.WriteLine("Default Gateway Address: " + gatewayAddress);
}
public static string GetDefaultGatewayAddress()
{
foreach (NetworkInterface netInterface in NetworkInterface.GetAllNetworkInterfaces())
{
// Skip loopback and non-IP interfaces
if (netInterface.NetworkInterfaceType == NetworkInterfaceType.Loopback || netInterface.OperationalStatus != OperationalStatus.Up)
continue;
IPInterfaceProperties ipProperties = netInterface.GetIPProperties();
GatewayIPAddressInformationCollection gatewayAddresses = ipProperties.GatewayAddresses;
if (gatewayAddresses.Count > 0)
return gatewayAddresses[0].Address.ToString();
}
return "Gateway not found";
}
}
这段代码会遍历所有的网络接口,找到第一个处于启动状态且不是回环接口的网络接口,然后获取它的默认网关地址。如果找到多个网关,它只返回第一个网关的地址。如果没有找到网关,它将返回"Gateway not found"。
这个方法不依赖于外部服务,因此它可以在没有网络连接的情况下工作,并且可以准确地获取到内部网关的IP地址。
标签:网关,asp,c#,netInterface,获取,地址,using,网络接口 From: https://www.cnblogs.com/Dongmy/p/18455422