如何用C# 获取网络适配器中的的IP

在C#中,可以使用System.Net.NetworkInformation命名空间下的NetworkInterface类来获取和管理本地计算机上的网络适配器。以下是使用C#获取网络适配器IP地址的代码示例:

```csharp
using System;
using System.Net.NetworkInformation;




namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            // 获取所有网络适配器
            NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();




            foreach (NetworkInterface adapter in adapters)
            {
                // 如果适配器支持IPv4并且不是虚拟适配器
                if (adapter.Supports(NetworkInterfaceComponent.IPv4) && !adapter.Description.Contains("Virtual"))
                {
                    // 获取IP属性
                    IPInterfaceProperties ipProperties = adapter.GetIPProperties();




                    // 获取IPv4地址集
                    UnicastIPAddressInformationCollection addresses = ipProperties.UnicastAddresses;




                    foreach (UnicastIPAddressInformation address in addresses)
                    {
                        // 如果该地址是IPv4并且不是环回地址,则打印它
                        if (address.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && !IPAddress.IsLoopback(address.Address))
                        {
                            Console.WriteLine("IP地址: " + address.Address.ToString());
                        }
                    }
                }
            }




            Console.ReadKey();
        }
    }
}
```

1、获取本机局域网内IP地址:

如果本机在局域网内,直接调用上面的方法即可,以ipv4为例:

List<string> ipv4_ips = GetLocalIpAddress("InterNetwork");

如果本机只有一个网卡,且没有安装虚拟网卡,那么ipv4_ips里应该只有一条数据,即局域网内地址;

2、获取本机的公网IP地址:

1)、如果本机是拨号上网的或具有独立公网IP的情况下,使用上面的方法即可,以ipv4为例:
List<string> ipv4_ips = GetLocalIpAddress("InterNetwork");

如果本机只有一个网卡,且没有安装虚拟网卡,那么ipv4_ips里应该只有一条数据,即公网IP地址;

2)、如果是路由上网的,想获取网关的外网IP,只能通过访问一些公网的地址来获取外网IP了;

这里我们首先获取所有适配器,并遍历这些适配器以确定哪些适配器支持IPv4且不是虚拟适配器。然后,我们获取每个适配器的IP属性,并从中提取IPv4地址集。最后,我们遍历每个IPv4地址,并检查该地址是否是IPv4并且不是回送地址。如果是,我们就可以通过调用Address属性来获取该地址的字符串表示形式。

如果喜欢我的文章,那么

“在看”和转发是对我最大的支持!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值