C#获取内网与外网IP地址代码实现详解
182 浏览量
更新于2023-05-04
收藏 138KB PDF 举报
本文主要介绍了如何使用C#编程语言来获取本地计算机的内网(局域网)和外网(公网)IP地址。通过提供的代码示例,开发者可以获取到本机的所有IP地址,包括IPv4和IPv6两种类型。
在C#中,获取本地IP地址通常涉及到对DNS(Domain Name System)的使用。以下是一些关键知识点:
1. 获取主机名称:
- `Dns.GetHostName()` 方法用于获取本地主机的名称,这是获取IP地址的第一步。
2. 解析主机IP地址:
- `Dns.GetHostAddresses(hostName)` 方法用于根据主机名获取对应的IP地址数组。这个方法会返回一个包含所有与主机名关联的IP地址的数组,包括IPv4和IPv6。
3. 筛选IP地址:
- `AddressFamily` 枚举用于标识IP地址的类型。`InterNetwork` 表示IPv4,`InterNetworkV6` 表示IPv6。
- 通过遍历`Dns.GetHostAddresses()` 返回的数组,可以筛选出指定类型的IP地址。
4. 获取本地所有IP地址:
- `GetLocalIpAddress(string netType)` 是一个自定义方法,根据传入的参数`netType`来决定返回IPv4还是IPv6的地址。如果参数为空,它将返回所有类型的IP地址。
5. 局域网IP地址:
- 在实际应用中,获取局域网IP地址可能需要额外的处理,因为`Dns.GetHostAddresses()` 返回的IP地址数组中,可能包含外网IP。通常,局域网IP是私有IP地址,如192.168.x.x或10.x.x.x等。如果要过滤出这些地址,可能需要检查IP是否属于私有IP范围。
6. 公网IP地址:
- 获取公网IP地址通常需要从外部服务查询,因为本地的`Dns.GetHostAddresses()` 只能提供局域网内的IP地址。可以使用第三方API(如`http://checkip.dyndns.org`)来获取互联网上的公共IP。
示例代码中的`GetLocalIpAddress` 方法实现了基本的IP地址筛选功能,但获取公网IP并未涵盖。要获取公网IP,可以创建一个异步方法,向公网IP查询服务发送HTTP请求并解析响应来得到公网IP地址。
通过理解以上知识点,开发者可以构建出完整的获取本地内外网IP地址的功能,同时也能对网络编程有更深入的理解。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2021-01-19 上传
2016-07-25 上传
2014-04-17 上传
2014-04-29 上传
2021-05-09 上传
2017-07-26 上传
weixin_38652636
- 粉丝: 6
- 资源: 896