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 地址。

四 效果展示

IP V4 效果展示

IP V6效果展示

總結:

通過獲取IP地址簇的方式,來到達我們的需求,雖然有點簡單,但是還是值得我們學習的,技術有限,希望能幫到大傢,更多相關C# 獲取本機IP地址內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: