java 限定网站在指定IP段访问

贴代码

IpUtil.java

package com.datongsoft.wg.common.util;

import java.net.InetAddress;
import java.net.UnknownHostException;

public class IpUtil {

	   /*验证IP是否属于某个IP段

	     *

	     * ipSection    IP段(以‘-‘分隔)

	     * ip           所验证的IP号码

	     *

	     */

	   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 int getExists(String ip){
	    	System.out.println("访问Ip:"+ip);
	    	InetAddress addr;
	    	int ext=0;
	    	 boolean exists = false;
	    	try {
				addr = InetAddress.getLocalHost();
				// String ip=addr.getHostAddress().toString(); //获取本机ip
		    	 //String ipSection="10.163.64.00-10.163.71.255";
				 String ipSection="192.168.0.1-192.168.0.240";
		    	 exists =ipExistsInRange(ip,ipSection);
		    	 if(exists){
		    		 ext=1;
		    	 }

			} catch (UnknownHostException e) {
				e.printStackTrace();
			}  catch (Exception e) {
				e.printStackTrace();
			}
			return ext;
	    }
	    public static void main(String[] args) throws Exception{

	       //10.10.10.116 是否属于固定格式的IP段10.10.1.00-10.10.255.255
	    /*	InetAddress addr = InetAddress.getLocalHost();
	        String ip=addr.getHostAddress().toString(); //获取本机ip
	        String hostName=addr.getHostName().toString(); //获取本机计算机名称
	        //String ip="10.163.10.116";

	        String ipSection="10.163.64.00-10.163.71.255";

	       boolean exists=ipExistsInRange(ip,ipSection);

	        System.out.println(exists);*/
	    	//System.out.println( getExists());
	        //System.out.println(getIp2long(ip));
	        //System.out.println(getIp2long2(ip));

	    }

	}

  

时间: 2024-11-05 11:35:08

java 限定网站在指定IP段访问的相关文章

iptables中规则的关系——以只允许某些IP段访问为例

最近遇到一个问题:服务器被全球的IP频繁试图通过ssh登录. 于是想到通过iptables防火墙限制访问,达到:仅允许指定ip段访问ssh服务(22端口). 关于iptables添加规则的文章有很多,而鲜有介绍规则之间的顺序.因此希望通过这篇文章介绍iptables多条规则之间是如何协同工作的. 注:作者并没有在此投入很多时间调研,因而以下仅仅是个人理解,有错误之处希望不吝指出. 假设希望仅仅允许 111.111.0.0/16 IP段ssh登录,而禁止其他所有ip登录. 最简单的命令是: ipt

linux下通过iptables只允许指定ip地址访问指定端口的设置方法

这篇文章主要介绍了linux下通过iptables只允许指定ip地址访问指定端口的设置方法,需要的朋友可以参考下. 首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptab

php中限制ip段访问、禁止ip提交表单的代码

在需要禁止访问或提交表单的页面添加下面的代码进行判断就可以了. 注意:下边只是一个PHP限制IP的实例代码,如果您打算应用到CMS中,请自行修改. <?php /加IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR

php中禁止单个ip与ip段访问的代码小结

1.禁止单个IP <?php //IP访问限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown

linux脚本检测本机与指定IP段网络是否畅通

linux编写脚本检测本机链接指定IP段是否畅通,通过ping命令检测指定IP,检测命令执行结果,若为0表示畅通,若为1表示不通,以此判断网络是否畅通,但是指定机器禁用ping命令除外.代码如下: #!/bin/bash # for N in `seq 121 237` do ping -c1 192.168.10.$N &> /dev/null if [ $? -eq 0 ] then echo "192.168.10.$N is up." >> /mnt/

tftp 限制ip 限制ip段 或者多个ip段访问

1 限制单个ip访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加  only_form =ip 重启 service xinetd restart 则只有 单个ip 的机器能访问此ftp服务 2 限制一个ip段访问 tftp 配置tftp信息 vi /etc/xinetd.d/tftp 在 service tftp配置信息中添加  only_form = ip段(例如 100.2.29.0/24) 重启 service xi

iptables只允许指定ip地址访问指定端口

首先,清除所有预设置 iptables -F#清除预设表filter中的所有规则链的规则 iptables -X#清除预设表filter中使用者自定链中的规则 其次,设置只允许指定ip地址访问指定端口 iptables -A INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --sport 22 -j ACCEPT iptables -A INPUT

apache 屏蔽IP段访问

打开httpd.conf文件 Documentroot <Directory "你的网站根目录"> Options Indexes FollowSymLinks AllowOverride None Order deny,allow Deny from 192.168.1.99 </Directory> 修改AllowOverride None 为AllowOverride All  表示为开启.htaccess 之后在网站根目录下创建.htaccess文件,写

禁止单个IP或ip段访问

//IP禁止判断接口,返回true则为找到 function checkIp($ip, $ipbanned) { $ipbannedFlag = false; if (!empty($ipbanned)) { foreach ($ipbanned as $data) { if (strpos($data, '*')) { $ip_min = convert_ip("min", $data); $ip_max = convert_ip("max", $data); $