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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步