狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

如何在C#中獲取計算機的IP地址

admin
2024年12月26日 10:4 本文熱度 310

前言

 IP地址(Internet Protocol Address)是網絡上設備的唯一標識符。IP 地址主要有本地IP地址網IP地址兩種類型。本文將介紹如何在C#中實現獲取IP地址的方法。

獲取本地IP地址

本地IP地址是用于本地網絡中的設備(192.168.x.x)。如果我們要獲取本地IP地址,則可以通過使用System.Net命名空間提供用于處理與網絡相關的操作的類和方法。

示例:使用DNS的GetHostEntry方法獲取主機IP地址:

using System.Net;
namespace Fountian.WinConsole.IPDemo{    internal class Program    {        /// <summary>        ///         /// </summary>        /// <param name="args"></param>        /// <returns></returns>              static async Task Main(string[] args)        {            string localIP = LocalIPAddress();            Console.WriteLine($"本地 IP 地址: {localIP}");            Console.Read();        }    }}
/// <summary>/// 獲取本地 IP 地址/// </summary>/// <returns></returns>/// <exception cref="Exception"></exception>public static string LocalIPAddress(){    var host = Dns.GetHostEntry(Dns.GetHostName());    // 獲取第一個IP地址    var ipAddress = host.AddressList    .FirstOrDefault(ip => ip.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);    if (ipAddress == null)    {        throw new Exception("找不到此計算機的IPv4地址");    }    return ipAddress.ToString();}

如果電腦有多個網絡接口(例如:以太網或Wi-Fi),則需要通過指定要查詢的網絡接口。可以使用NetworkInterface類進行更精細的控制。

示例:枚舉所有網絡接口的IP地址:

using System.Net;using System.Net.NetworkInformation;using System.Net.Sockets;
namespace Fountian.WinConsole.IPDemo{    internal class Program    {        /// <summary>        ///         /// </summary>        /// <param name="args"></param>        /// <returns></returns>              static async Task Main(string[] args)        {            foreach (var localIP in GetAllLocalIPAddresses())            {                Console.WriteLine($"本地IP地址: {localIP}");            }            Console.Read();        }    }}
/// <summary>///  獲取本地IP地址列表/// </summary>/// <returns></returns>public static string[] GetAllLocalIPAddresses(){    var ipAddressList = NetworkInterface.GetAllNetworkInterfaces()        .Where(n => n.OperationalStatus == OperationalStatus.Up)        .SelectMany(n => n.GetIPProperties().UnicastAddresses)        .Where(a => a.Address.AddressFamily == AddressFamily.InterNetwork)        .Select(a => a.Address.ToString())        .ToArray();    return ipAddressList;}

獲取外網IP地址

獲取外網IP地址無法直接從本地系統獲取,因為它是由路由器或ISP管理。如果我們需要獲取外網IP地址,則可以通過使用調用外部服務查詢。

示例:使用 HttpClient 類調用外部服務的方法查詢外網IP地址,下面是通過訪問 http://ifconfig.me/ip 獲取,當然還可以使用其它的外部服務。

using System.Net;
namespace Fountian.WinConsole.IPDemo{    internal class Program    {        /// <summary>        ///         /// </summary>        /// <param name="args"></param>        /// <returns></returns>              static async Task Main(string[] args)        {            string publicIP = await GetPublicIPAddressAsync();            Console.WriteLine($"外網 IP 地址: {publicIP}");            Console.Read();        }    }}
/// <summary>/// 獲取外網 IP 地址/// </summary>/// <returns></returns>public static async Task<string> GetPublicIPAddressAsync(){    using (var client = new HttpClient())    {        string url = "http://ifconfig.me/ip";        var response = await client.GetStringAsync(url);        return response.Trim();    }}
注意:網絡請求可能由于各種原因(如沒有 Internet)而失敗。需要正常處理異常。

小結

以上使用C#實現獲取本地IP地址與外網IP地址方法中的其中一種方式,如果需要兼容IPv6,那我們獲取時則需考慮IPv6。


該文章在 2024/12/26 10:04:17 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved