Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果未连接到确定的网络,则阻止访问_Javascript_Network Programming - Fatal编程技术网

Javascript 如果未连接到确定的网络,则阻止访问

Javascript 如果未连接到确定的网络,则阻止访问,javascript,network-programming,Javascript,Network Programming,我想阻止未连接到指定网络的用户提交表单。我该怎么做?Javascript解决方案正是我所寻找的 示例: 如果未连接到我的家庭网络,则无法访问foo页面。如果不使用某种API,前端Javascript无法获取用户的IP地址 这里有两个选项供您选择: 使用API获取IP地址。ipinfo.io是我过去使用过的一个,但是如果您收到大量请求,您必须为此付费。这个特殊的调用只是偶尔用于演示它。下面是一些检查用户是否在我的家庭网络上的代码 函数getNetworkIP(json){ 如果(json.ip=

我想阻止未连接到指定网络的用户提交表单。我该怎么做?Javascript解决方案正是我所寻找的

示例:


如果未连接到我的家庭网络,则无法访问foo页面。如果不使用某种API,前端Javascript无法获取用户的IP地址

这里有两个选项供您选择:

  • 使用API获取IP地址。ipinfo.io是我过去使用过的一个,但是如果您收到大量请求,您必须为此付费。这个特殊的调用只是偶尔用于演示它。下面是一些检查用户是否在我的家庭网络上的代码
    
    函数getNetworkIP(json){
    如果(json.ip=='108.173.5.106'){
    log(“IP地址通过测试”);
    }
    否则{
    log(“IP地址未通过测试”);
    }
    }
    
  • 您可以在服务器端添加某种验证,以提交表单,检查IP地址是否与所需网络匹配,如果请求不是来自适当的网络,则拒绝该请求。如何进行这项工作取决于服务器端实现
    前端Javascript可以通过多种方式破坏(包括关闭它),因此出于安全考虑,我将使用服务器端Javascript。我已经做了很多前端验证

    所以我可以用php来做吗?@AlmostDone几乎可以肯定。但是我的本地ip可能等于您的本地ip。我是正确的吗?@AlmostDone如果我正确理解您的问题,这取决于您托管此表单的位置。
    <script type="application/javascript">
      function getNetworkIP(json) {
        if (json.ip === '108.173.5.106'){
            console.log('The IP address passes the test');
        }
        else{
            console.log('The IP address fails the test');
        }
      }
    </script>
    
    <script type="application/javascript" src="http://ipinfo.io/?format=jsonp&callback=getNetworkIP"></script>