asp.net c#获取内部网关地址

在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地址。

posted @   yinghualeihenmei  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-10-09 visio怎么打开?除了使用visio之外,用word打开操作步骤
2022-10-09 png图片和jpg图片有什么区别
2022-10-09 .lic文件是什么
2022-10-09 SpringBoot框架中的DAO层、Entity层、Service层、Controller层
2022-10-09 Spring、springboot、springMVC、JPA、SpringData、springCloud的概述
2022-10-09 elementUI/jquery/bootstrap/vue的异同
点击右上角即可分享
微信分享提示