获取IP及判断IP是否在区间
- /// <summary>
- /// 获取客户端IP
- /// </summary>
- /// <returns></returns>
- public static string GetClientIpAddress()
- {
- var httpContext = HttpContext.Current;
- if (httpContext.Request.ServerVariables == null)
- {
- return null;
- }
- var clientIp = httpContext.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] ??
- httpContext.Request.ServerVariables["REMOTE_ADDR"];
- try
- {
- foreach (var hostAddress in Dns.GetHostAddresses(clientIp))
- {
- if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
- {
- return hostAddress.ToString();
- }
- }
- foreach (var hostAddress in Dns.GetHostAddresses(Dns.GetHostName()))
- {
- if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
- {
- return hostAddress.ToString();
- }
- }
- }
- catch (Exception ex)
- {
- }
- return clientIp;
- }
- /// <summary>
- /// ip是否在ip空间内
- /// </summary>
- /// <param name="ip"></param>
- /// <param name="ipSection"></param>
- /// <returns></returns>
- public static Boolean ipExistsInRange(String ip, String ipSection)
- {
- ipSection = ipSection.Trim();
- ip = ip.Trim();
- int idx = ipSection.IndexOf('-');
- String beginIP = ipSection.Substring(, idx);
- String endIP = ipSection.Substring(idx + );
- return getIp2long(beginIP) <= getIp2long(ip) && getIp2long(ip) <= getIp2long(endIP);
- }
- public static long getIp2long(String ip)
- {
- ip = ip.Trim();
- String[] ips = ip.Split('.');
- long ip2long = 0L;
- for (int i = ; i < ; ++i)
- {
- ip2long = ip2long << | Int64.Parse(ips[i]);
- }
- return ip2long;
- }
- public static long getIp2long2(String ip)
- {
- ip = ip.Trim();
- String[] ips = ip.Split('.');
- long ip1 = Int64.Parse(ips[]);
- long ip2 = Int64.Parse(ips[]);
- long ip3 = Int64.Parse(ips[]);
- long ip4 = Int64.Parse(ips[]);
- long ip2long = 1L * ip1 * * * + ip2 * * + ip3 * + ip4;
- return ip2long;
- }
获取IP及判断IP是否在区间的更多相关文章
- delphi 域名转ip并判断ip是否可以联通
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- .NET记录-获取外网IP以及判断该IP是属于网通还是电信
在工作时,需要获取服务器公网IP(外网IP),并且判断该IP地址是属于网通还是电信.花时间整理一下,自己实现的代码,以及后续遇到的问题. /// <summary> /// 获取外网IP ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- scrapy实战9动态设置ip代理从数据库中随机获取一个可用的ip:
在目录下创建tools(python package) 在tools中创建crawl_xici_ip.py文件写入代码如下: #coding=utf-8 import requests from sc ...
- 判断runtime是否运行在docker中及从docker中获取宿主机的ip信息
1.判断运行时环境是否运行在docker中 参考:How to determine if a process runs inside lxc/Docker? 确定进程是否在LXC/Docker中运行? ...
- 获取ip,判断用户所在城市
PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_Use ...
- 【Win 10 应用开发】获取本机的IP地址
按照老规矩,也是朋友的建议,老周今天在吹牛之前,先讲一个小故事. 有朋友问我,老周,你现在还发短信吗,你每个月用多少电话费?唉,实话说,现在真的发短信不多了,套餐送的130条短信,每月都发不了一条.至 ...
- nodejs之获取客户端真实的ip地址+动态页面中引用静态路径下的文件及图片等内容
1.nodejs获取客户端真实的IP地址: 在一般的管理网站中,尝尝会需要将用户的一些操作记录下来,并记住是哪个用户进行操作的,这时需要用户的ip地址,但是往往当这些应用部署在服务器上后,都使用了ng ...
- 获取用户的真实ip
常见的坑有两个: 一.获取的是内网的ip地址.在nginx作为反向代理层的架构中,转发请求到php,java等应用容器上.结果php获取的是nginx代理服务器的ip,表现为一个内网的地址.php获取 ...
随机推荐
- 线程安全的CopyOnWriteArrayList
证明CopyOnWriteArrayList是线程安全的 先写一段代码证明CopyOnWriteArrayList确实是线程安全的. ReadThread.java import java.util. ...
- [资讯] NFC有什么作用。小米手机3NFC解读
在近几年的智能手机市场,NFC成了Android高端手机产品的标准配置,无论是Android还是Windows Phone阵营,有越来越多的厂商也开始为自己的产品加入NFC功能.而小米最新的旗舰产品— ...
- Symfony2 学习笔记之服务容器
现在的PHP应用程序都是面向对象开发,所以主要是由对象构成.有的对象可以方便的分发邮件信息而有的可能帮你把信息写入到数据库中.在你的应用程序中,你可能创建一个对象用于管理你的产品库存,或者另外一个对象 ...
- .NET 常用ORM之Gentle.Net
.Net常用的就是微软的EF框架和Nhibernate,这两个框架用的都比较多就不做详细介绍了,今天我们来看看Gentle.Net,Gentle.Net是一个开源的优秀O/R Mapping的对象持久 ...
- System.map文件的作用解析
有关System.map文件的信息好象很缺乏.其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要.但是由于缺乏必要的文档说明,使其显得比较神秘.它就象耳垂,我们每个人都有,但却不知道是干什 ...
- Python基础(一)_数据类型、条件判断、循环、列表
编译型语言(中文版)运行代码之前,要先编译.然后再运行编译时间比较长c.c++.c# 解释型语言(翻译版)运行的时候才去编译,运行一次编译.运行效率没有编译型语言快python.ruby.shell. ...
- mysql数据库介绍
一.数据库概述 二.MySql安装和基本管理 三.mysql基本语句 四.库的操作 五.表的操作 六.数据类型 七.数据类型二 八.完整性约束 九.外键的变种 三种关系 十.数据的增删改 十一.多表查 ...
- JS使用onscroll、scrollTop实现图片懒加载
今天做到项目中的图片展示,由于每一页的图片数量都很多,因此需要为图片的展示设计一种懒加载的功能. 第一要做的当然就是给程序添加滚动监听事件. //触发拉取图片开关,保证正在拉取时不能再次触发 var ...
- JAVA的内存模型及结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢? Java内存模型 Java内存模型在JVM ...
- Exp2_固件程序设计 20165226_20165310_20165315
Exp2_固件程序设计 20165226_20165310_20165315 Exp2_1 MDK 实验内容 注意不经老师允许不准烧写自己修改的代码 两人(个别三人)一组 参考云班课资源中" ...