使jquery片段以IP为条件

时间:2013-01-03 12:40:29

标签: php jquery

如果我自己的IP正在访问该网站,是否有办法解除此代码段的攻击?

        $('#preloader').delay(5555).fadeOut(1234,function(){  
           $(this).remove();
        });

像(伪代码):     “如果ip不是127.0.0.1,什么都不做。”

(如果更容易,我会接受PHP解决方案。)

谢谢!

3 个答案:

答案 0 :(得分:3)

Javascript无法获取访问者的IP,服务器端解决方案是唯一可能的。试试这个:

<?php if ($_SERVER['REMOTE_ADDR'] == '1.1.1.1') { // your IP instead of 1.1.1.1 ?>
    $('#preloader').delay(5555).fadeOut(1234,function(){  
        $(this).remove();
    });
<? } ?>

答案 1 :(得分:0)

您可以在PHP中创建此条件以显示此部分代码。

<? if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1'): ?>
    $('#preloader').delay(5555).fadeOut(1234,function(){  
        $(this).remove();
    });
<? endif; ?>

答案 2 :(得分:0)

您将使用javascript和jquery获取clientIP。 您可以通过服务器端使用JSONP

进行中继

在谷歌上搜索时,在SO http://stackoverflow.com/questions/102605/can-i-lookup-the-ip-address-of-a-hostname-from-javascript

上找到了它
<script type="application/javascript">
    function getip(json){
      alert(json.ip); // alerts the ip address
    }
</script>

<script type="application/javascript" src="http://jsonip.appspot.com/?callback=getip"></script>

另外,jQuery可以处理JSONP,只是传递一个用callback =格式化的url? paramtere到$ .getJSON方法,例如:

 $.getJSON("http://jsonip.appspot.com?callback=?",
    function(data){
       alert( "Your ip: " + data.ip);
  });

此示例是在Google App Engine上实施的非常简单的JSONP服务,您可以查看更多详细信息here

检查服务的来源,是一个小的Python脚本,它可以在任何服务器端语言上实现。

如果您不是在寻找跨域解决方案,那么脚本可以进一步简化,因为您不需要回调参数,并返回纯JSON。

运行以上代码段here