判断用户ip是否在指定的一个ip段内

        /**
	 * 判断ip是否在一个ip段内
	 *
	 * @param args
	 */
	public static boolean ipExistsInRange(String ip, String ipSection) {
		ipSection = ipSection.trim();
		ip = ip.trim();
		int idx = ipSection.indexOf(‘-‘);
		String beginIP = ipSection.substring(0, idx);
		String endIP = ipSection.substring(idx + 1);
		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 = 0; i < 4; ++i) {
			ip2long = ip2long << 8 | Integer.parseInt(ips[i]);
		}
		return ip2long;
	}

	public static long getIp2long2(String ip) {
		ip = ip.trim();
		String[] ips = ip.split("\\.");
		long ip1 = Integer.parseInt(ips[0]);
		long ip2 = Integer.parseInt(ips[1]);
		long ip3 = Integer.parseInt(ips[2]);
		long ip4 = Integer.parseInt(ips[3]);
		long ip2long = 1L * ip1 * 256 * 256 * 256 + ip2 * 256 * 256 + ip3 * 256
				+ ip4;
		return ip2long;
	}

	public static void main(String[] args) {
		String ip = "10.10.10.116";
		String ipSection = "10.10.1.00-10.10.255.255";
		boolean exists = ipExistsInRange(ip, ipSection);
		System.out.println(exists);
	}

  

时间: 2024-08-07 20:54:09

判断用户ip是否在指定的一个ip段内的相关文章

帝国cms调用随机文章 支持一个id段内的调用

随机调用文章可以从某个角度上说是更新了网页,如果是动态网页每次刷新网页那个调用列表都是不同,如果是静态网页后台重新生成html后也会变化.那么帝国cms调用随机文章怎么做呢?我们可以用灵动标签(e:loop),插入如下代码,哪里需要插哪里,哈哈 [e:loop={"select * from {$dbtbpre}ecms_news order by rand() desc limit 11",20,24,0}] //11是随机调用的数量 <li><a href=&qu

代理ip最新识别方法及代理ip有效性检测方法

网络营销时代,网络成为企业营销的重要工具.线上有非常多的营销渠道可以利用.当然方法也就越来越多:自媒体.抖音.电商.微商等等,尤其当走进大数据时代,爬虫可以帮助企业在线上采集到相当精准的用户信息,成为企业制定营销策略的关键.当然,技术流的推广人员都知道,爬虫运行少不了代理ip的辅助. 代理ip最新识别方法以及代理ip有效性检测方法 一.代理ip常见的一些功能 1.突破自身ip访问限制,现在有许多的网站都对ip地址访问进行了限制,这时则可以通过代理ip来突破限制,让自己进入网站. 2.提高访问速度

获取ip,判断用户所在城市

PHP获取IP地址 这个比较简单了,利用PHP自带函数就可以了,PHP中文手册看一下,都有现成的例子,就不过多说明了,直接上代码,A段: <? //PHP获取当前用户IP地址方法 $xp_UserIp = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $xp_UserIp = ($xp_UserIp) ? $xp_Us

分布式进阶(十二)Docker给每一个启动的container指定一个ip, 这个如何做?

使用pipework工具. 前提:每个Container所做的工作现在还很少,可以不用save.commit. 为了便于通信,自定义一个网桥(192.168.1.180/24),使之IP与宿主主机IP在同一网段内. bridge模式 bridge模式是Docker默认的网络设置,此模式会为每一个容器分配Network Namespace.设置IP等,并将一个主机上的Docker容器连接到一个虚拟网桥上.下面着重介绍一下此模式. bridge模式的拓扑 当Docker server启动时,会在主机

如何判断一个IP地址是有效的组播地址

组播报文的目的地址使用D类IP地址,范围是从224.0.0.0到239.255.255.255.D类地址不能出现在IP报文的源IP地址字段.单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用"逐跳"(hop-by-hop)的原理在IP网络中传输.然而在ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址.所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包.组播组中的成员是动态的,主机可以在

python教程判断一下一个 IP 在不在线?ping IP教程

假设今天老板给我们一个任务,让我们判断一下一个 IP 在不在线.我们随手用 python 写一个 ping IP 的代码: import os host = input('请输入要检测的 IP : ')result = os.popen('ping -c 1 -t 1 %s' % (host)).read() if 'ttl' in result: print('IP 在线')else: print('IP 不在线') [dl]15-4342[/dl] 现在,你作为一名审核代码的人员,不考虑代码

给定一个用户,获取其密码警告期限;而后判断用户密码使用期限是否已经小于警告期限

if 给定一个用户,获取其密码警告期限:而后判断用户密码使用期限是否已经小于警告期限:    提示:计算方法,最长使用期限减去已经使用的天数即为剩余使用期限:    如果小于,则显示"Warning":否则,就显示"OK".   #!/bin/bash W=`grep"student" /etc/shadow | cut -d: -f6` S=`date+%s` T=`expr$S/86400` L=`grep"^student&quo

给定一个用户,获取其密码警告期限; 而后判断用户密码使用期限是否已经小于警告期限;

需求: 给定一个用户,获取其密码警告期限: 而后判断用户密码使用期限是否已经小于警告期限: #!/bin/bash USERNAME=user1 Warndays=`grep "\$USERNAME" /etc/shadow  | cut -d : -f 6` Nowsecs=`date +%s` let Nowdays=$Nowsecs/86400 echo "nowday is $Nowdays" Moddays=`grep "\$USERNAME&q

43.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”

//1.学习到字符输入 //2.判断字符 #include<iostream> using namespace std; int main() { char a; cout<<"please input a charcter: "<<endl; cin>>a; if(a>'0'&&a<'9') { cout<<"it's a numerical character!"<&l