C#获取IP4或IP6协议的IP地址

2023-11-04 23:40

本文主要是介绍C#获取IP4或IP6协议的IP地址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原理,首先,要用System.Net.IPHostEntry把IP解析成IP实体,然后利用System.Net.IPAddress来解析IP列表,值得注意的是,IP4的IP地址,可以用AddressList[0]获取,IP6的IP地址,AddressList[1]获取

判断协议的方法,很简单,利用System.Net.Sockets.AddressFamily可以判断IP类型。


对于 IPv4,返回 System.Net.Sockets.AddressFamily.InterNetwork;对于 IPv6,返回 System.Net.Sockets.AddressFamily.InterNetworkV6

如图:


所以,可以用如下代码判断并获取正确的IP地址。


private IPAddress getIdAddress(){//IPHostEntry ipEntity = Dns.GetHostEntry(Dns.GetHostName());IPAddress ipAddr = ipEntity.AddressList[0];//IPAddress ipAddr = Dns.GetHostAddresses(Dns.GetHostName())[0];//if (ipAddr.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6)//判断是否IP6协议//{//    ipAddr = Dns.GetHostEntry(Dns.GetHostName()).AddressList[1];//}IPAddress ipAddr = null;IPAddress [] arrIP = Dns.GetHostAddresses(Dns.GetHostName());foreach (IPAddress ip in arrIP){if (System.Net.Sockets.AddressFamily.InterNetwork.Equals(ip.AddressFamily)){ipAddr = ip;}else if (System.Net.Sockets.AddressFamily.InterNetworkV6.Equals(ip.AddressFamily)){ipAddr = ip;}}return ipAddr;}

转载出处: http://hi.baidu.com/xiuyuanvip/item/153d02dba9b38bcb1a72b4db

这篇关于C#获取IP4或IP6协议的IP地址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/345981

相关文章

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

C#中Guid类使用小结

《C#中Guid类使用小结》本文主要介绍了C#中Guid类用于生成和操作128位的唯一标识符,用于数据库主键及分布式系统,支持通过NewGuid、Parse等方法生成,感兴趣的可以了解一下... 目录前言一、什么是 Guid二、生成 Guid1. 使用 Guid.NewGuid() 方法2. 从字符串创建

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

C# 比较两个list 之间元素差异的常用方法

《C#比较两个list之间元素差异的常用方法》:本文主要介绍C#比较两个list之间元素差异,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 使用Except方法2. 使用Except的逆操作3. 使用LINQ的Join,GroupJoin

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源