簡體   English   中英

如何查找給定本地 IP 地址的網絡接口

[英]How to find the network interface for a given local IP address

關於如何找到本地IP地址,如何找到給定網絡接口的IP地址有很多問題,但是我需要找到一個ZA12A3079E14CED46E69BA52B8A90B21地址所屬的網絡接口,例如這個接口。

那么,如何獲取給定 IP 地址分配到的網絡接口?

使用System.Net.NetworkInformation命名空間,我得到了以下解決方案:

public static NetworkInterface GetInterfaceForIP(IPAddress address)
{
    foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces())
    {
        foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses)
        {
            if (ip.Address.AddressFamily == AddressFamily.InterNetwork)
            {
                if (address.Equals(ip.Address))
                    return ni;
            }
        }
    }

    return null;
}

這里沒有太多的錯誤檢查,這個 function 返回 IP 的網絡接口。

如果您需要檢查狀態更改事件(電纜拔出等),可以使用System.Net.NetworkInformation命名空間中的NetworkChange事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM