C# 获取本机IP地址,IPv4,IPv6(保姆级)
Posted IC00
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 获取本机IP地址,IPv4,IPv6(保姆级)相关的知识,希望对你有一定的参考价值。
每日一遍:今天你学习了吗?
前言:
在我们使用C# WinForm中,我们有时候是需要或者自己本机的IP地址进行处理,今天我们学习一下如何使用C# Winform获取主机的IP地址。现在博主手把手教你获取,很简单的。
操作步骤
一,创建文件
创建Winform窗体文件,这里我就不多做介绍,你们可以看看我之前的文章,都是保姆级的。
二,窗体设计
我们从winform 工具箱拖动textbox,和一个按钮,对按钮重命名
三,代码设计
3.1双击按钮进入代码设计窗口,添加命名空间,也可不添加,等下输入代码时使用快捷键也是可以的,Alt+Enter,使用ALT键+回车。
using System.Net;
using System.Net.Sockets;
3.2输入代码
IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName());
foreach (IPAddress address in ip)
if (address.AddressFamily == AddressFamily.InterNetwork)
textBox1.Text += address.ToString() + "\\r\\n";
3.3 Dns的方法字段
BeginGetHostAddresses(String, AsyncCallback, Object)
异步返回指定主机的 Internet 协议 (IP) 地址。
BeginGetHostEntry(IPAddress, AsyncCallback, Object)
将 IP 地址异步解析为 IPHostEntry 实例。
BeginGetHostEntry(String, AsyncCallback, Object)
将主机名或 IP 地址异步解析为 IPHostEntry 实例。
EndGetHostAddresses(IAsyncResult)
结束对 DNS 信息的异步请求。
EndGetHostEntry(IAsyncResult)
结束对 DNS 信息的异步请求。
GetHostAddresses(String)
返回指定主机的 Internet 协议 (IP) 地址。
GetHostAddresses(String, AddressFamily)
返回指定主机的 Internet 协议 (IP) 地址。
GetHostAddressesAsync(String)
返回指定主机的 Internet 协议 (IP) 地址以作为异步操作。
GetHostAddressesAsync(String, AddressFamily, CancellationToken)
返回指定主机的 Internet 协议 (IP) 地址以作为异步操作。
GetHostAddressesAsync(String, CancellationToken)
返回指定主机的 Internet 协议 (IP) 地址以作为异步操作。
GetHostEntry(IPAddress)
将 IP 地址解析为 IPHostEntry 实例。
GetHostEntry(String)
将主机名或 IP 地址解析为 IPHostEntry 实例。
GetHostEntry(String, AddressFamily)
将主机名或 IP 地址解析为 IPHostEntry 实例。
GetHostEntryAsync(IPAddress)
将 IP 地址解析为 IPHostEntry 实例以作为异步操作。
GetHostEntryAsync(String)
将主机名或 IP 地址解析为 IPHostEntry 实例以作为异步操作。
GetHostEntryAsync(String, AddressFamily, CancellationToken)
将主机名或 IP 地址解析为 IPHostEntry 实例以作为异步操作。
GetHostEntryAsync(String, CancellationToken)
将主机名或 IP 地址解析为 IPHostEntry 实例以作为异步操作。
GetHostName()
获取本地计算机的主机名。
3.4 AddressFamily方法字段
AppleTalk | 16 | AppleTalk 地址。 |
---|---|---|
Atm | 22 | 本机 ATM 服务地址。 |
Banyan | 21 | Banyan 地址。 |
Ccitt | 10 | CCITT 协议(如 X.25)的地址。 |
Chaos | 5 | MIT CHAOS 协议的地址。 |
Cluster | 24 | Microsoft 群集产品的地址。 |
ControllerAreaNetwork | 65537 | 控制器区域网络地址。 |
DataKit | 9 | Datakit 协议的地址。 |
DataLink | 13 | 直接数据链接接口地址。 |
DecNet | 12 | DECnet 地址。 |
Ecma | 8 | 欧洲计算机制造商协会 (ECMA) 地址。 |
FireFox | 19 | FireFox 地址。 |
HyperChannel | 15 | NSC Hyperchannel 地址。 |
Ieee12844 | 25 | IEEE 1284.4 工作组地址。 |
ImpLink | 3 | ARPANET IMP 地址。 |
InterNetwork | 2 | IP 版本 4 的地址。 |
InterNetworkV6 | 23 | IP 版本 6 的地址。 |
Ipx | 6 | IPX 或 SPX 地址。 |
Irda | 26 | IrDA 地址。 |
Iso | 7 | ISO 协议的地址。 |
Lat | 14 | LAT 地址。 |
Max | 29 | MAX 地址。 |
NetBios | 17 | NetBios 地址。 |
NetworkDesigners | 28 | 支持网络设计器 OSI 网关的协议的地址。 |
NS | 6 | Xerox NS 协议的地址。 |
Osi | 7 | OSI 协议的地址。 |
Packet | 65536 | 低级别数据包地址。 |
Pup | 4 | PUP 协议的地址。 |
Sna | 11 | IBM SNA 地址。 |
Unix | 1 | Unix 本地到主机地址。 |
Unknown | -1 | 未知的地址族。 |
Unspecified | 0 | 未指定的地址族。 |
VoiceView | 18 | VoiceView 地址。 |
4 效果展示
IP V4 效果展示
IP V6效果展示
总结:
通过获取IP地址簇的方式,来到达我们的需求,虽然有点简单,但是还是值得我们学习的,技术有限,希望能帮到大家,点赞,收藏,评论,不喜勿喷。
asp.net C# 获取本机所有ip地址
List<string> ipv4_ips = GetLocalIpAddress("InterNetwork");
/// <summary> /// 获取本机所有ip地址 /// </summary> /// <param name="netType">"InterNetwork":ipv4地址,"InterNetworkV6":ipv6地址</param> /// <returns>ip地址集合</returns> public static List<string> GetLocalIpAddress(string netType) { string hostName = Dns.GetHostName(); //获取主机名称 IPAddress[] addresses = Dns.GetHostAddresses(hostName); //解析主机IP地址 List<string> IPList = new List<string>(); if (netType == string.Empty) { for (int i = 0; i < addresses.Length; i++) { IPList.Add(addresses[i].ToString()); } } else { //AddressFamily.InterNetwork表示此IP为IPv4, //AddressFamily.InterNetworkV6表示此地址为IPv6类型 for (int i = 0; i < addresses.Length; i++) { if (addresses[i].AddressFamily.ToString() == netType) { IPList.Add(addresses[i].ToString()); } } } return IPList; }
以上是关于C# 获取本机IP地址,IPv4,IPv6(保姆级)的主要内容,如果未能解决你的问题,请参考以下文章