获取客户端IP,
今天Boss说,项目中的报错邮件发回的客户端IP地址不对,居然是自己服务器端的IP地址...我那个汗了一把...百度了一堆,最会也木有找到更好的方法,希望园子里的大牛们给小弟指点指点...
下面是正在使用的获取IP地址的方法. 正如你看到的,有时候仍旧取不到真的准确的IP地址,我想要个能百分之百取得IP地址的方法,只能跪求了....
/// <summary> /// 获取ip /// </summary> /// <param name="m_p">当前页</param> /// <returns>IP</returns> public static string GetUserIP() { HttpContext context = HttpContext.Current; string clientip = ""; //可以透过代理服务器取得客户端真实的IP,但是并不是每个代理服务器都能用这个方法取得真实IP //如果客户端没有使用代理服务器,这个值就为null,所以必须判断 if (context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null) { clientip = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].Trim(); if (clientip.IndexOf(",") > -1) { string[] tempIp = clientip.Split(','); foreach (string s in tempIp) { //192.168.1.1属于IP地址的C类地址,属于保留IP,专门用于路由器设置. if (!s.StartsWith("192.168")) { clientip = s.Trim(); break; } } } } else { //取得客户端的IP地址,如果客户端使用代理服务器,那么取得的就是代理服务器的IP,而不是真实的IP地址 clientip = context.Request.ServerVariables["REMOTE_ADDR"]; } try { IPAddress.Parse(clientip); } catch { clientip = "127.127.0.1"; } return clientip; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!