📜  获取默认网关地址 c# (1)

📅  最后修改于: 2023-12-03 15:27:51.990000             🧑  作者: Mango

获取默认网关地址 C#

当我们需要进行网络编程时,获取默认网关地址是必不可少的一步。在 C# 中,可以使用 NetworkInterface 类来轻松地获取默认网关地址。

获取默认网关地址的代码

以下代码演示了如何使用 NetworkInterface 类来获取默认网关地址:

using System.Net.NetworkInformation;

public static string GetDefaultGatewayAddress()
{
    string result = null;
    foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())
    {
        if (nic.OperationalStatus == OperationalStatus.Up)
        {
            GatewayIPAddressInformationCollection gateways = nic.GetIPProperties().GatewayAddresses;
            if (gateways.Count > 0)
            {
                result = gateways[0].Address.ToString();
                break;
            }
        }
    }
    return result;
}
代码解释
  • NetworkInterface.GetAllNetworkInterfaces():获取系统中的所有网络接口。
  • nic.OperationalStatus == OperationalStatus.Up:筛选状态为“联机”的网络接口。
  • nic.GetIPProperties().GatewayAddresses:获取网关地址信息集合。
  • gateways[0].Address.ToString():获取第一个网关地址并转换为字符串形式。
  • result = gateways[0].Address.ToString();:找到第一个符合条件的网关地址并赋值给 result 变量。
结论

上述代码实现了在 C# 中获取默认网关地址的功能。它适用于 Windows 和 macOS 操作系统。在 Linux 系统中,可以使用 ip route 命令来获取默认网关地址。