网络(NET)帮助类
public class Net { /// <summary> /// 获取Ip /// </summary> public static string Ip { get { string text = string.Empty; bool flag = HttpContext.Current != null; if (flag) { text = Net.GetWebClientIp(); } bool flag2 = string.IsNullOrWhiteSpace(text); if (flag2) { text = Net.GetLanIp(); } return text; } } /// <summary> /// 获取主机名 /// </summary> public static string Host { get { return (HttpContext.Current == null) ? Dns.GetHostName() : Net.GetWebClientHostName(); } } /// <summary> /// 获取浏览器信息 /// </summary> public static string Browser { get { bool flag = HttpContext.Current == null; string result; if (flag) { result = string.Empty; } else { HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser; result = string.Format("{0} {1}", browser.Browser, browser.Version); } return result; } } /// <summary> /// 获取Web客户端的Ip /// </summary> private static string GetWebClientIp() { string webRemoteIp = Net.GetWebRemoteIp(); IPAddress[] hostAddresses = Dns.GetHostAddresses(webRemoteIp); string result; for (int i = 0; i < hostAddresses.Length; i++) { IPAddress iPAddress = hostAddresses[i]; bool flag = iPAddress.AddressFamily == AddressFamily.InterNetwork; if (flag) { result = iPAddress.ToString(); return result; } } result = string.Empty; return result; } /// <summary> /// 获取Web远程Ip /// </summary> private static string GetWebRemoteIp() { return HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } /// <summary> /// 获取局域网IP /// </summary> private static string GetLanIp() { IPAddress[] hostAddresses = Dns.GetHostAddresses(Dns.GetHostName()); string result; for (int i = 0; i < hostAddresses.Length; i++) { IPAddress iPAddress = hostAddresses[i]; bool flag = iPAddress.AddressFamily == AddressFamily.InterNetwork; if (flag) { result = iPAddress.ToString(); return result; } } result = string.Empty; return result; } /// <summary> /// 获取Web客户端主机名 /// </summary> private static string GetWebClientHostName() { bool flag = !HttpContext.Current.Request.IsLocal; string result; if (flag) { result = string.Empty; } else { string webRemoteIp = Net.GetWebRemoteIp(); string hostName = Dns.GetHostEntry(IPAddress.Parse(webRemoteIp)).HostName; bool flag2 = hostName == "localhost.localdomain"; if (flag2) { hostName = Dns.GetHostName(); } result = hostName; } return result; } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤