c# 獲取本機IP地址


1.常用的獲取本機IP地址的方法如下:

            try
            {
                string hostName = Dns.GetHostName();
                IPHostEntry iPHostEntry = Dns.GetHostEntry(hostName);
                var addressV = iPHostEntry.AddressList.FirstOrDefault(q => q.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);//ip4地址
                if (addressV != null)
                    return addressV.ToString();
                return "127.0.0.1";
            }
            catch (Exception ex)
            {
                return "127.0.0.1";
            }

但是以上獲取IP地址的方法,可能獲取不到你想要的IP地址,比如,你本機開啟了虛擬機,VPN等,都會增加IP地址

2.以下通過Socket,連接UDP套接字並讀取其本地終結點,可以拿到更精確的本機IP地址:

string localIP;
using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
{
    socket.Connect("8.8.8.8", 65530);
    IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
    localIP = endPoint.Address.ToString();
}

在UDP套接字上連接具有以下效果:它設置發送/接收的目的地,丟棄來自其他地址的所有數據包。參照https://stackoverflow.com/questions/6803073/get-local-ip-address

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM