C#如何获取当前主机的IP地址

这篇具有很好参考价值的文章主要介绍了C#如何获取当前主机的IP地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

解决方案

获取主机名

Dns 类提供了一组用于域名系统 (DNS) 操作的静态方法。

Dns.GetHostName();

我们可以使用Dns.GetHostName()方法来获取本地计算机的主机名, 这是一个静态方法。该方法调用操作系统的网络栈,以获取计算机的主机名。主机名是一个用来标识网络上的设备的名称。在网络中,每个设备都有一个唯一的主机名,通过主机名可以在网络中进行设备间的通信。

获取IP地址

Dns.GetHostAddresses(hostName);

获取到主机名后,我们使用Dns.GetHostAddresses(hostName)方法来获取IP列表,这也是一个静态方法,用于获取指定主机名(或 IP 地址字符串)对应的 IP 地址列表。它接受一个主机名或 IP 地址作为参数,并返回一个 IPAddress[] 数组,其中包含与该主机名或 IP 地址关联的所有 IP 地址。

该方法首先尝试解析参数中传入的主机名。如果传入的是一个有效的主机名,它将查询 DNS 服务器以查找与该主机名对应的 IP 地址。如果找到了相关的 IP 地址,将返回一个包含这些 IP 地址的数组。

另外,如果传入的参数是一个有效的 IP 地址字符串(例如:“192.168.0.1”),那么方法将直接将该字符串解析为一个 IPAddress 对象并放入数组中返回。

该方法在解析过程中,如果遇到了问题或访问权限的限制,会抛出异常,如 SocketException 或 SecurityException。

过滤IPv4地址

可以通过一个枚举值AddressFamily.InterNetwork来过滤IPv4地址。

AddressFamily 是一个枚举类型,定义了不同的网络地址类型。其中,InterNetwork 表示 IPv4 地址,InterNetworkV6 表示 IPv6 地址,Unix 表示 Unix 域套接字地址等。

函数

using System.Collections.Generic;
using System.Text;
using System.Net.Sockets;
using System.Net;
using System;

public static List<string> GetIPv4Addresses()
{
    string hostName = Dns.GetHostName();
    IPAddress[] addresses = Dns.GetHostAddresses(hostName);

    List<string> ipv4Addresses = new List<string>();

    foreach (IPAddress address in addresses)
    {
        // 判断是否为IPv4地址
        if (address.AddressFamily == AddressFamily.InterNetwork)
        {
            ipv4Addresses.Add(address.ToString());
        }
    }

    return ipv4Addresses;
}

该函数将返回找到的所有IPv4地址,调用后会得到一个包含所有找到的IPv4地址的列表。如果没找到IPv4地址,则返回一个空列表。

函数调用

打印出找到的所有IPv4地址。
函数调用如下:

List<string> ipv4Addresses = GetIPv4Addresses();

foreach (string address in ipv4Addresses)
{
    Console.WriteLine(address);
}

运行结果

C#如何获取当前主机的IP地址,C#,c#,tcp/ip,php

其他文章

有了局域网IP,我们就可以通过UDP来实现局域网通讯,参考文章C#实现局域网之间互相传递消息
安卓获取当前设备的局域网IP地址文章来源地址https://www.toymoban.com/news/detail-652516.html

到了这里,关于C#如何获取当前主机的IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包