文章目录 解决方案获取主机名获取IP地址过滤IPv4地址 函数函数调用运行结果 其他文章 解决方案 获取主机名 Dns 类提供了一组用于域名系统 (DNS) 操作的静态方法。 Dn
Dns 类提供了一组用于域名系统 (DNS) 操作的静态方法。
Dns.GetHostName();
我们可以使用Dns.GetHostName()方法来获取本地计算机的主机名, 这是一个静态方法。该方法调用操作系统的网络栈,以获取计算机的主机名。主机名是一个用来标识网络上的设备的名称。在网络中,每个设备都有一个唯一的主机名,通过主机名可以在网络中进行设备间的通信。
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。
可以通过一个枚举值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);}
有了局域网IP,我们就可以通过UDP来实现局域网通讯,参考文章C#实现局域网之间互相传递消息
安卓获取当前设备的局域网IP地址
来源地址:https://blog.csdn.net/weixin_44499065/article/details/132311154
--结束END--
本文标题: C#如何获取当前主机的局域网IP
本文链接: https://www.lsjlt.com/news/442600.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0