最新下载
热门教程
- 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; } |
相关文章
- 《鸣潮》槲生半岛下棋获胜方法 01-15
- 《燕云十六声》积矩九剑流派介绍 01-15
- 《忍者必须死3》兑换码2025年一月 01-15
- 《鬼谷八荒》修为一直是0解决方法 01-15
- 《宝可梦大集结》密勒顿技能介绍 01-15
- 以下哪种鲸喷出的水柱是双股的 01-15