C#获取本机IP地址(ipv4)

获取本机IP地址是在编程过程中常用的功能之一,本文将详细讲解如何使用C#获取本机IP地址(ipv4)。

获取本机IP地址的代码

下面是获取本机IP地址的C#代码:

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
string localIp = ipAddress.ToString();

解释代码

代码中,Dns.GetHostName()方法会返回计算机的主机名,Dns.GetHostEntry()方法会返回包含IP地址列表的IPHostEntry实例。其中,AddressList属性返回IP地址列表,我们使用FirstOrDefault方法获取第一个ipv4地址。

最后返回的IP地址是字符串类型,通过ToString()方法将IPAddress实例转换成字符串型变量。

需要注意的是,这种方法只能获取到对应网络适配器的IP地址,并不一定是对外可用的公网IP地址。

示例说明

下面给出两个示例,用于解释如何获取本机IP地址:

示例一:获取IP地址字符串

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
string localIp = ipAddress.ToString();

Console.WriteLine("本机IPv4地址为:" + localIp);

示例二:获取IP地址的字节数组

using System.Net;
using System.Net.Sockets;

IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList.FirstOrDefault(address => address.AddressFamily == AddressFamily.InterNetwork);
byte[] localIpBytes = ipAddress.GetAddressBytes();

Console.Write("本机IPv4地址的字节数组为:");
foreach(byte b in localIpBytes)
{
    Console.Write(b + ".");
}

在示例二中,我们使用IPAddress实例的GetAddressBytes()方法,将ip地址转换为字节数组,方便处理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#获取本机IP地址(ipv4) - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • C#通过NPOI导入导出数据EXCEL

    下面是关于“C#通过NPOI导入导出数据EXCEL”的完整攻略,包含以下几个部分: NPOI简介 导出Excel 导入Excel 示例说明 1. NPOI简介 NPOI是一个开源的.NET库,可以用来读写Microsoft Excel、Word和PowerPoint格式的文件。对于需要在C#中读写Excel文件的开发者来说,NPOI是一个不错的选择。使用NP…

    C# 2023年5月31日
    00
  • Asp.Net Core用NLog记录日志操作方法

    Asp.Net Core用NLog记录日志操作方法 在Asp.Net Core中,我们可以使用NLog来记录日志。本攻略将详细介绍如何使用NLog来记录日志,并提供两个示例说明。 准备工作 在使用NLog记录日志之前,我们需要完成以下准备工作: 安装NLog。 我们可以使用NuGet包管理器来安装NLog。在Visual Studio中,我们可以右键单击项目…

    C# 2023年5月16日
    00
  • c# 异步编程入门

    C# 异步编程入门 什么是异步编程 异步编程是指在代码执行时,允许在执行某些线程耗时的操作时不会阻塞当前线程的执行,以提高程序的性能和响应速度。在 C# 中,异步编程通常与任务(Task)和异步方法(async/await)一起使用。 使用 async/await 实现异步编程 异步编程最常见的实现方式是使用 async/await 关键字。这两个关键字一起…

    C# 2023年6月6日
    00
  • 为HttpClient开启HTTP/2

    .Net Core在调用其他服务时,调用通常使用HttpClient,而HttpClient默认使用HTTP/1.1 。     配置 HttpClient 以使用 HTTP/2 h2 连接 自 .NET Core 3.0 发布以来, .NET 开发人员可以使用 HttpClient 启用 HTTP/2 。   设置 HTTP/2 的方法 DefaultRe…

    C# 2023年4月28日
    00
  • C#中实现一次执行多条带GO的sql语句实例

    要在C#中实现一次执行多条带GO的SQL语句,通常有以下两种方法: 将一次执行多条带GO的SQL语句拆分成多个SQL语句进行执行。 在C#中,可以使用SqlConnection、SqlCommand等类库来连接并操作SQL Server数据库。针对上述需求,可以通过以下代码将多条带GO的SQL语句分割开: string sql = @" SELEC…

    C# 2023年6月1日
    00
  • c#简单读取文本的实例方法

    下面我给你详细讲解一下“c#简单读取文本的实例方法”的完整攻略。 一、需求 在开发过程中,我们经常需要读取文本文件中的数据,进行进一步的处理或者展示。而c#提供了多种读取文本文件的方法,本文将介绍两种简单的读取文本的方法。 二、File.ReadAllText()方法 1. 方法介绍 File.ReadAllText()方法是一个方便而简单的方法,它可以很容…

    C# 2023年6月1日
    00
  • C#自定义基于控制台的Timer实例

    下面就为大家详细讲解如何自定义基于控制台的Timer实例。 准备工作 在使用C#自定义基于控制台的Timer实例之前,我们需要先在命名空间中引用System.Threading命名空间。 using System.Threading; 接着我们需要定义Timer对象和定时器事件处理程序,代码如下: //定义Timer对象 Timer timer = null…

    C# 2023年6月1日
    00
  • C#导出pdf的实现方法(浏览器不预览直接下载)

    下面我将分享如何使用C#实现将数据导出为pdf并进行下载,跳过浏览器预览的过程。 1. 安装NuGet依赖 我们需要安装以下NuGet包: iTextSharp:用于创建PDF文件和表单以及PDF文档的操作 在Visual Studio中,可以通过NuGet包管理器来安装这些依赖。 2. 编写C#代码 接下来,我们需要编写C#代码来实现导出和下载功能。 首先…

    C# 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部