取得本機 IPv4 位址

建立一個靜態類別來取得本機 IPv4 位址,可以從專案中的任何位置呼叫

  1. 建立一個名為 的新 C# 腳本NetworkUtils
  2. 實作靜態程式方法來取得本機 IPv4 位址。
using System.Net;
using System.Net.Sockets;

public static class NetworkUtils
{
    /// <summary>
    /// Gets the local IPv4 address of the machine.
    /// </summary>
    /// <returns>Local IPv4 address as a string.</returns>
    public static string GetLocalIPv4Address()
    {
        string localIP = string.Empty;
        try
        {
            foreach (var ip in Dns.GetHostEntry(Dns.GetHostName()).AddressList)                 
            {
                if (ip.AddressFamily == AddressFamily.InterNetwork)
                {
                    localIP = ip.ToString();
                    break;
                }
            }
        }
        catch (SocketException ex)
        {
            UnityEngine.Debug.LogError("SocketException: " + ex.ToString());
        }
        catch (System.Exception ex)
        {
            UnityEngine.Debug.LogError("Exception: " + ex.ToString());
        }

        return localIP;
    }
}

在 Unity 專案中使用的方法:

  1. 需要本機 IPv4 位址的腳本中,呼叫靜態方法GetLocalIPv4Address()

範例:

using UnityEngine;

public class ExampleUsage : MonoBehaviour
{
    void Start()
    {
        string ipAddress = NetworkUtils.GetLocalIPv4Address();
        Debug.Log("IPv4 Address: " + ipAddress);
    }
}

解釋

  1. 靜態類別和方法
    • 該類別NetworkUtils被標記為static,這意味著它不能被實例化並且僅包含靜態成員。
    • 該方法GetLocalIPv4Address也被標記為static,允許在沒有 實例的情況下呼叫它NetworkUtils
  2. 異常處理
    • 與前面的腳本一樣,它處理SocketException一般情況Exception,將任何錯誤記錄到 Unity 控制台。
  3. 用法
    • 可以從任何其他腳本呼叫靜態方法NetworkUtils.GetLocalIPv4Address(),從而提供一種簡單且可重複使用的方式來取得本機 IPv4 位址。

透過將實用程式類別設定為靜態,確保可以在整個專案中全域存取該方法,而無需將其附加到 GameObject 或建立實例,從而使程式碼更加簡潔和模組化。

Tags: