首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> C# 入門

C# 取得本機 IP 位址與主機名稱:Dns 類別實戰技巧

     編輯:C# 入門

System.Net.Dns 類別核心方法

  • GetHostName():取得本機主機名稱。
  • GetHostByName(string hostName):解析主機名稱回傳 IPHostEntry,包含 AddressList(IP 位址陣列)與 Aliases(別名)。

完整工具類別實作

using System; using System.Net;
namespace NKUtilities {
    public class DNSUtility {
        public static int Main(string[] args) {
            string hostName = "";
            if (args.Length == 0) {
                hostName = Dns.GetHostName();
                Console.WriteLine("Local Host Name: " + hostName);
            } else hostName = args[0];
            IPHostEntry entry = Dns.GetHostByName(hostName);
            foreach (IPAddress ip in entry.AddressList)
                Console.WriteLine("IP Address: " + ip.ToString());
            return 0;
        }
    }
}

關鍵點說明

  1. 無參數呼叫 GetHostName() 取得本機名稱。
  2. 以該名稱呼叫 GetHostByName() 取得 IPHostEntry。
  3. AddressList 可能包含多張網卡的 IPv4/IPv6 位址,需逐一列舉。
  4. 專案需參考 System.dll(含 System.Net 命名空間)。

現代化補充(.NET Core / .NET 5+)

// 非同步、支援 IPv6、跨平台
var hostName = Dns.GetHostName();
var entry = await Dns.GetHostEntryAsync(hostName);
foreach (var ip in entry.AddressList)
    Console.WriteLine(ip);
  • GetHostByName 已標記過時,建議改用 GetHostEntryAsync。
  • Dns 類別現在在 System.Net.NameResolution 命名空間(.NET Core)。

常見應用場景

  • 伺服器啟動時記錄綁定 IP。
  • P2P 應用程式交換連線端點。
  • 授權驗證綁定 MAC/IP(需配合 NetworkInterface 取得 MAC)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved