C#获取本地IP的四种方式示例详解

下面是针对“C#获取本地IP的四种方式示例详解”的完整攻略。

1. 前言

有时我们需要获取本地机器的IP地址。但是,如果我们不知道如何获取IP地址,就无法对本地IP进行任何操作。在本教程中,我们将学习使用C#编程语言获取本地IP地址的4个方法。

2. 方法一 [GetHostName]

以下是使用C#语言获取本地IP地址的第一个例子:

    string myHost = System.Net.Dns.GetHostName();
    IPHostEntry myIPs = System.Net.Dns.GetHostEntry(myHost);
    foreach (IPAddress myIP in myIPs.AddressList)
    {
        Console.WriteLine(myIP.ToString());
    }

在上述代码片段中,我们首先使用System.Net.Dns.GetHostName()获取了本地机器的主机名,然后使用System.Net.Dns.GetHostEntry()方法来获取关联的IP地址。最后,我们使用 foreach 循环迭代 AddressList 集合,将其转换为字符串并打印到控制台。

3. 方法二 [GetHostAddresses]

第二种方法使用了GetHostAddresses函数,与前面的代码相比,此方法更加简洁。以下是代码:

    string name = Dns.GetHostName();        
    IPAddress[] addressList = Dns.GetHostAddresses(name);
    foreach (IPAddress address in addressList)
    {
        Console.WriteLine(address.ToString());
    }

在上述代码片段中,我们使用Dns.GetHostName()获取本地机器的主机名,并将其存储在变量name中。接下来,我们使用Dns.GetHostAddresses()方法来获取IP地址,该方法使用步骤与前面的方法相同。最后,我们使用 foreach 循环迭代“AddressList”数组,并将其转换为字符串并打印到控制台。

4. 方法三 [LocalIPAddress]

下面我们将介绍一种使用NetworkInterface类的第三种方法,该方法使用LocalIPAddress()函数来获取本地IP地址,代码如下:

    public static string GetLocalIPAddress()
    {
        var netInterfaces = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault
            (n => n.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || 
            n.NetworkInterfaceType == NetworkInterfaceType.Ethernet);
        if (netInterfaces == null)
            return string.Empty;

        var address = netInterfaces.GetIPProperties().UnicastAddresses.FirstOrDefault
            (u => u.Address.AddressFamily == AddressFamily.InterNetwork);
        return address?.Address.ToString();
    }

在本方法中,我们首先使用NetworkInterface.GetAllNetworkInterfaces()方法来获取本地机器的所有网络接口,然后使用FirstOrDefault函数来获取指定网络接口类型的第一个接口(在此示例中为Wireless 802.11Ethernet)。然后,我们使用GetIPProperties()方法来获取IP属性(如网关地址),然后使用FirstOrDefault函数获取第一个IPv4地址。最后,我们将获取到的IPv4地址转换为字符串并返回。

5. 方法四 [System.Net.Sockets.TcpClient]

最后,我们将介绍使用System.Net.Sockets.TcpClient类的第四种方法。以下是代码示例:

    IPHostEntry host;
    string localIP = "";
    host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (IPAddress ip in host.AddressList)
    {
        if (ip.AddressFamily == AddressFamily.InterNetwork)
        {
            localIP = ip.ToString();
            break;
        }
    }

在此方法中,我们使用Dns.GetHostEntry(Dns.GetHostName())方法来获取主机名,并将其存储在变量host中。接下来,我们使用foreach循环迭代“AddressList”数组,使用if语句检查IP地址的类型是否为InterNetwork。在循环完成后,我们将获取到的IP地址转换为字符串并将其存储在变量localIP中。

6. 结论

以上是获取本地IP地址的四种方法示例。无论您选择哪种方法,都需要根据自己的特定应用场景选择适当的方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#获取本地IP的四种方式示例详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JavaScript中的alert()函数使用技巧详解

    JavaScript中的alert()函数使用技巧详解 在JavaScript中,alert()函数用于弹出一个对话框,展示消息给用户。在本篇文章中,我们将详细讲解alert()函数的使用技巧。 基本用法 alert()函数是JavaScript的全局函数,调用它时无需使用任何前缀。例如: alert("Hello World!"); 上…

    JavaScript 2023年5月27日
    00
  • Javascript Date setDate() 方法

    以下是关于JavaScript Date对象的setDate()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setDate()方法 JavaScript Date对象的setDate()方法设置日期对象的日期部分。该方法接受一个整数参数,表示要设置的日期。如果该参数超出了该月的最大日期,则自动调整为下一个月的第一天。 下面是使用D…

    JavaScript 2023年5月11日
    00
  • 谈谈JavaScript中的函数与闭包

    JavaScript中的函数与闭包 函数 在JavaScript中,函数是一种可以进行重复使用的代码块。使用函数可以封装代码,使之变得更加易于维护和复用。在JavaScript中,函数有以下几个特点: 函数是一等公民,可以像其他对象一样被传递、存储和操作。 函数可以在定义时不指定参数,或者在调用时传递任意数量的参数。 函数可以有返回值,也可以在执行结束时不返…

    JavaScript 2023年5月27日
    00
  • JavaScript优雅处理对象的6种方法

    JavaScript优雅处理对象的6种方法 在 JavaScript 开发中,绝大部分情况下数据都会以对象的形式存在,因此如何优雅处理对象是我们非常重要的一项技能。在下面的内容中,我们将介绍处理对象的6种优雅方法。 1. 使用解构赋值 在 JavaScript 中,我们可以使用解构赋值的方法来方便地提取对象中的属性值。这种方法可以让代码更加简洁易读,同时也可…

    JavaScript 2023年5月27日
    00
  • 12个常用的js正则表达式

    12个常用的JS正则表达式 正则表达式是一种用于匹配文本中特定模式的工具,它在JS编程中使用广泛。本文列举了12个常用的JS正则表达式及其用法。 验证用户名 const regex = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/; 该正则表达式用于验证用户名是否合法,用户名应包含5-16位字符,必须以字母开头,后面可跟字母、数字或下划线。 …

    JavaScript 2023年6月10日
    00
  • javascript 操作文件 实现方法小结

    Javascript 操作文件 实现方法小结 在Javascript中,操作文件的方法主要是使用File API和XMLHttpRequest对象的responseText、responseXML属性。 File API 1. 读取文件内容 使用File API的读取文件内容主要有以下几个步骤: 创建一个FileReader对象 调用FileReader对象…

    JavaScript 2023年5月27日
    00
  • 详细介绍HTTP Cookie

    详细介绍HTTP Cookie HTTP Cookie,通常简称Cookie,是指由Web服务器发送给客户端浏览器的一小段文本,浏览器将其存储到本地,稍后再发送给同一服务器。Cookie 可以帮助服务器记录用户的状态信息,实现用户的个性化设置,也可以保持用户登录状态,提高用户体验等。本文将详细介绍 HTTP Cookie 的相关知识点。 Cookie的组成 …

    JavaScript 2023年6月11日
    00
  • 原生js仿jquery一些常用方法(必看篇)

    “原生js仿jquery一些常用方法(必看篇)”是一篇文章,介绍了如何使用纯原生的JavaScript实现一些常见的jQuery方法。这些方法包括:选择器、事件绑定、DOM操作、特效等。 以下是这篇文章中介绍的一些内容: 选择器 在jQuery中,我们可以使用美元符号($)来简化选择器的书写。例如: $(“.my-class”) 在原生JavaScript中…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部