[英]Hide or show a div element based on IP address
是否有可能使用Apache,Javascript或CSS(或Plone中的某些內容)使<div>
僅對一組IP地址可見?
以下是我希望在某些IP地址范圍內可用的代碼:
<div id="user">
<ul>
<li><a href="#" title="Login">Login</a></li>
</ul>
</div>
理想情況下,我希望這只能從3組IP地址中看到。 我有一個單獨的站點運行以下限制(當然,IP地址已更改)以控制訪問,但是對整個站點,而不僅僅是一個div。
Order allow,deny
Allow from 000.0.00
Allow from 000.0.01
# Order deny,allow
# Deny from all
這樣做的目的是將彈出登錄(或登錄頁面)限制為不在特定位置訪問該站點的任何人。 即使我可以隱藏“用戶”div(未登錄時是登錄按鈕)給沒有從IP地址范圍訪問的人,也沒關系。 任何幫助將不勝感激,謝謝!
您可以使用Products.AutoRole自動為來自某些IP范圍的訪問者分配一個組,然后調整您的Plone模板,以便您的div以該組為條件。 (並且對於您的最終問題,我們應該提交一個功能請求,“可以登錄”應該綁定到權限,默認情況下將授予匿名權限。)
FWIW,在工作中,我們還在apache配置中限制/login|/login_form
。
你需要一些CSS:
#user {
display: none;
}
還有一些js:
<script type="application/javascript">
function getip(json){
if(json.ip === "127.0.0.1") {
document.getElementById('user').style.display = 'block';
}
}
</script>
<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>
我從這里得到了這個: https : //stackoverflow.com/a/810461/3132718
現在,默認情況下,div不會在頁面上顯示,但仍可通過查看源代碼看到。
*multiple class hiding*
<script type="application/javascript">
function getip(json){
if(json.query == "87.1.1.5") {
var elems = document.getElementsByClassName('price');
for (i = 0; i < elems.length; i++) {
elems[i].style.display = 'block';
}
}
}
<script type="application/javascript" src="http://ip-api.com/json/?callback=getip"></script>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.