首頁 > 軟體

C# 獲取本機IP地址(IPv4和IPv6)

2022-08-11 10:00:20

前言:

在我們使用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() + "rn";
                }
            }

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方法欄位

AppleTalk16AppleTalk 地址。
Atm22本機 ATM 服務地址。
Banyan21Banyan 地址。
Ccitt10CCITT 協定(如 X.25)的地址。
Chaos5MIT CHAOS 協定的地址。
Cluster24Microsoft 群集產品的地址。
ControllerAreaNetwork65537控制器區域網路地址。
DataKit9Datakit 協定的地址。
DataLink13直接資料連結介面地址。
DecNet12DECnet 地址。
Ecma8歐洲計算機制造商協會 (ECMA) 地址。
FireFox19FireFox 地址。
HyperChannel15NSC Hyperchannel 地址。
Ieee1284425IEEE 1284.4 工作組地址。
ImpLink3ARPANET IMP 地址。
InterNetwork2IP 版本 4 的地址。
InterNetworkV623IP 版本 6 的地址。
Ipx6IPX 或 SPX 地址。
Irda26IrDA 地址。
Iso7ISO 協定的地址。
Lat14LAT 地址。
Max29MAX 地址。
NetBios17NetBios 地址。
NetworkDesigners28支援網路設計器 OSI 閘道器的協定的地址。
NS6Xerox NS 協定的地址。
Osi7OSI 協定的地址。
Packet65536低階別封包地址。
Pup4PUP 協定的地址。
Sna11IBM SNA 地址。
Unix1Unix 本地到主機地址。
Unknown-1未知的地址族。
Unspecified0未指定的地址族。
VoiceView18VoiceView 地址。

四 效果展示

IP V4 效果展示

IP V6效果展示

總結:

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


IT145.com E-mail:sddin#qq.com