最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C# 获取IP及判断IP是否在区间
时间:2022-06-25 07:53:06 编辑:袖梨 来源:一聚教程网
代码如下 | 复制代码 |
/// /// 获取客户端IP /// /// publicstaticstringGetClientIpAddress() { var httpContext = HttpContext.Current; if(httpContext.Request.ServerVariables ==null) { returnnull; } var clientIp = httpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? httpContext.Request.ServerVariables["REMOTE_ADDR"]; try { foreach(var hostAddressinDns.GetHostAddresses(clientIp)) { if(hostAddress.AddressFamily == AddressFamily.InterNetwork) { returnhostAddress.ToString(); } } foreach(var hostAddressinDns.GetHostAddresses(Dns.GetHostName())) { if(hostAddress.AddressFamily == AddressFamily.InterNetwork) { returnhostAddress.ToString(); } } } catch(Exception ex) {
} returnclientIp; } /// /// ip是否在ip空间内 /// /// /// /// publicstaticBoolean ipExistsInRange(String ip, String ipSection) { ipSection = ipSection.Trim(); ip = ip.Trim(); intidx = ipSection.IndexOf('-'); String beginIP = ipSection.Substring(0, idx); String endIP = ipSection.Substring(idx + 1); returngetIp2long(beginIP) <= getIp2long(ip) && getIp2long(ip) <= getIp2long(endIP);
} publicstaticlonggetIp2long(String ip) { ip = ip.Trim(); String[] ips = ip.Split('.'); longip2long = 0L; for(inti = 0; i < 4; ++i) { ip2long = ip2long << 8 | Int64.Parse(ips[i]); } returnip2long; } publicstaticlonggetIp2long2(String ip) { ip = ip.Trim(); String[] ips = ip.Split('.'); longip1 = Int64.Parse(ips[0]); longip2 = Int64.Parse(ips[1]); longip3 = Int64.Parse(ips[2]); longip4 = Int64.Parse(ips[3]); longip2long = 1L * ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256 + ip4; returnip2long; } |
相关文章
- 王者荣耀侦探能力大测试攻略 王者荣耀侦探能力大测试怎么过 11-22
- 无期迷途主线前瞻兑换码是什么 11-22
- 原神欧洛伦怎么培养 11-22
- 炉石传说网易云音乐联动怎么玩 11-22
- 永劫无间手游确幸转盘怎么样 11-22
- 无期迷途主线前瞻兑换码是什么 无期迷途主线前瞻直播兑换码介绍 11-22