簡體   English   中英

使用DNS提供商no-ip.org htaccess阻止/允許IP

[英]Block/Allow from IP using DNS provider no-ip.org htaccess

我有一個安全的網站(.htaccess =全部拒絕),我想允許某些人訪問

但是,他們使用的是便攜式筆記本電腦,並且由ISP為其分配了動態IP。

因此,我下載了no-ip客戶端,該客戶端應為它們提供可以解析為IP的主機。

但是,當我把

Allow from xxx.no-ip.org

在.htaccess文件中,我仍然獲得禁止頁面。

我還有其他允許使用的固定IP地址-並且可以正常工作-我已經測試過xxx.no-ip.org通過使用http://www.webyield.net/ipa.php解析為我想要的IP。

有什么想法我在這里做錯了嗎?

Apache的“ AllowDeny規則使用通配符(例如Allow from *.example.com ),因此可以在反向DNS上使用。 您用戶的IP地址不會轉換為no-ip.org地址(他們可能正在解析為ISP特定的地址),因此Apache拒絕了他們的訪問。

您可能最好向他們提供所有用戶名和密碼,並使用HTTP身份驗證(通過mod_authz_user或類似方式)來授予他們訪問權限。

這可以通過使用腳本(根據您的需要進行修改)來實現:

#!/bin/bash
# Dynamic IP .htaccess file generator
# Written by Star Dot Hosting
# www.stardothosting.com

dynDomain="$1"
htaccessLoc="$2"

dynIP=$(/usr/bin/dig +short $dynDomain)

echo "dynip: $dynIP"
# verify dynIP resembles an IP
if ! echo -n $dynIP | grep -Eq "[0-9.]+"; then
    exit 1
fi

# if dynIP has changed
if ! cat $htaccessLoc | /bin/grep -q "$dynIP"; then

        # grab the old IP
        oldIP=`cat /usr/local/bin/htold-ip.txt`

        # output .htaccess file
        echo "order deny,allow" > $htaccessLoc 2>&1
        echo "allow from $dynIP" >> $htaccessLoc 2>&1
        echo "allow from x.x.x.x" >> $htaccessLoc 2>&1
        echo "deny from all" >> $htaccessLoc 2>&1

        # save the new ip to remove next time it changes, overwriting previous old IP
        echo $dynIP > /usr/local/bin/htold-ip.txt
fi

比只是將其克隆以在.htaccess文件上生成新行:

*/15 * * * * /bin/sh /usr/local/bin/.sh yourhostname.no-ip.org /var/www/folder/.htaccess > /dev/null 2>&1

資料來源: https : //www.stardothosting.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM