[英]login on webpage only from the internet
首先,對不起,如果我的問題很愚蠢,或者我使用了錯誤的術語,但是我對Web編程完全陌生。
因此,我在樹莓派上制作了一個Apache服務器,網頁上的幾個按鈕可以控制房間的燈光。 我可以使用我的公用IP 188.75.xxx.xxx
通過家庭網絡ip 192.168.xxx.xxx
和從Internet訪問它。 (只是要清楚-raspi已連接到我的路由器,並且在路由器中我將端口80轉發到了它)
我想制作一些基本的登錄表單,但是僅當我通過188.75.xxx.xxx
IP連接時。 而且,如果我正在連接192.168.xxx.xxx
,則不會顯示該表格。
有什么辦法可以做到這一點? 謝謝亞當·N
執行腳本后,請在向用戶顯示任何內容之前檢查IP地址。 在此處閱讀有關程序。 一旦有了IP地址,就可以解析它並查看前兩個組。 嘗試像這樣做。 然后比較數字並決定授予或拒絕訪問該頁面的權限。 在這里,您可以閱讀有關PHP登錄表單的信息。 用偽代碼,看起來像這樣:
// this is pseudo code, don't try to run it - it will not work
$ip = get_ip();
$groups = parse_ip($ip);
if ( is_home_network($groups) )
{
grant_permissions();
}
else
{
request_login();
}
您可以將PHP filter_var函數與驗證過濾器FILTER_VALIDATE_IP
和標志過濾器FILTER_FLAG_NO_PRIV_RANGE
。
代碼示例:
if ( filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE) )
{
// is not a local ip address
}
希望我能為您服務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.