当前位置 主页 > 服务器问题 > Linux/apache问题 >

    禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    栏目:Linux/apache问题 时间:2019-11-01 09:50

    PHP禁止某个IP或IP段访问

    废话不多说,客官请看:

    <?  
    //禁止某个IP
    $banned_ip = array (
    "127.0.0.1",
    //"119.6.20.66",
    "192.168.1.4"
    );
    if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) )
    {
    die ("您的IP禁止访问!");
    }
    //禁止某个IP段
    $ban_range_low=ip2long("119.6.20.65");
    $ban_range_up=ip2long("119.6.20.67");
    $ip=ip2long($_SERVER["REMOTE_ADDR"]);
    if ($ip>$ban_range_low && $ip<$ban_range_up)
    {
    echo "您的IP在被禁止的IP段之中,禁止访问!";
    exit();
    }
    ?> 


    apache禁止使用IP访问

    方法一:在httpd.conf文件最后面,加入以下代码

    NameVirtualHost 221.*.*.*
    <VirtualHost 221.*.*.*>
    ServerName 221.*.*.*
    <Location />
    Order Allow,Deny
          Deny from all
    </Location>
    </VirtualHost>    
    <VirtualHost 221.*.*.*>
    DocumentRoot "c:/web"
    ServerName www.jb51.net
    </VirtualHost> 

    说明:蓝色部分是实现拒绝直接通过221.*.*.*这个IP的任何访问请求,这时如果你用221.*.*.*访问,会提示拒绝访问。红色部分就是允许通过www.jb51.net这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)

    Linux 屏蔽IP访问

    #屏蔽单个IP的命令是
    iptables -I INPUT -s 123.45.6.7 -j DROP
    #封整个段即从123.0.0.1到123.255.255.254的命令
    iptables -I INPUT -s 123.0.0.0/8 -j DROP
    #封IP段即从123.45.0.1到123.45.255.254的命令
    iptables -I INPUT -s 124.45.0.0/16 -j DROP
    #封IP段即从123.45.6.1到123.45.6.254的命令是
    iptables -I INPUT -s 123.45.6.0/24 -j DROP
    service iptables save 
    


    保存在/etc/sysconfig/iptables 若没有iptables文件会自动创建

    Nginx 禁止IP访问

    首先建立下面的配置文件放在 nginx 的 conf目录下面,命名为blocksip.conf:

    deny 4.4.4.4 //这是nginx要禁止的IP

    保存一下。
    在nginx的配置文件nginx.conf中加入:include blocksip.conf; 然后重启 nginx,就可以生效了。被封锁的ip打开站点的时候,就会提示:

    403 Forbidden

    blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问:

    deny IP;
    allow IP;
    # block all ips
    deny all;
    # allow all ips
    allow all;

    其中网段的写法是这样的:192.168.1.0/24这样的形式。