iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >C#如何获取当前主机的局域网IP
  • 243
分享到

C#如何获取当前主机的局域网IP

c#tcp/ipip 2023-10-25 17:10:32 243人浏览 八月长安
摘要

文章目录 解决方案获取主机名获取IP地址过滤IPv4地址 函数函数调用运行结果 其他文章 解决方案 获取主机名 Dns 类提供了一组用于域名系统 (DNS) 操作的静态方法。 Dn

文章目录

解决方案

获取主机名

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);}

运行结果

在这里插入图片描述

其他文章

有了局域网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文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C#如何获取当前主机的局域网IP
    文章目录 解决方案获取主机名获取IP地址过滤IPv4地址 函数函数调用运行结果 其他文章 解决方案 获取主机名 Dns 类提供了一组用于域名系统 (DNS) 操作的静态方法。 Dn...
    99+
    2023-10-25
    c# tcp/ip ip
  • java如何根据IP获取当前区域天气信息
    这篇文章主要介绍“java如何根据IP获取当前区域天气信息”,在日常操作中,相信很多人在java如何根据IP获取当前区域天气信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java如何根据IP获取当前区域天...
    99+
    2023-06-20
  • java如何根据IP获取当前区域天气信息详解
    大致思路是客户端发起请求,我们首先根据请求获取到外网IP,然后再根据外网IP获取到用户所在城市,最后根据城市获取到天气信息 获取外网IP 万网获取外网IP地址:www.net.cn/...
    99+
    2022-11-12
  • 云主机如何获取默认公网ip
    云主机获取默认公网IP的方法根据云服务提供商和操作系统不同而有所差异。以下是一般情况下获取默认公网IP的步骤:1. 登录到云服务提供...
    99+
    2023-08-18
    云主机
  • php如何根据IP获取当前经纬度以及地域信息
    今天心血来潮脑海忽出一个想法,即打算写出来玩耍一下。 其中涉及几个关键功能 1.获取用户当前经纬度、地址、地域信息; 2.计算用户与用户之间的距离、路线。 3.其他,与今天的文章没有...
    99+
    2022-11-13
  • php局域网怎么获取所有用户的电脑IP和主机名、mac地址
    本篇内容介绍了“php局域网怎么获取所有用户的电脑IP和主机名、mac地址”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!代码如下:<p...
    99+
    2023-06-20
  • C# 如何获取当前进程或线程的ID
    目录获取当前进程或线程的IDC# 进程读取方法获取当前进程或线程的ID 如果获得当前进程的Id用: Process[] processes = Process.GetProcesse...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作