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

Blocking acess if are not connected to a determined network

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

示例:

如果没有连接到我的家庭网络,您将无法访问 foo 页面

如果不使用某种 API,前端 Javascript 无法获取用户的 IP 地址。

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

  1. 使用API获取IP地址。ipinfo.io是我以前用过的,但如果你需要付费您会收到大量请求。这个特定的调用只是不时地用于演示它。下面是一些检查用户是否在我的家庭网络上的代码。
<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>
  1. 您可以在服务器端为表单的提交添加某种验证,检查 IP 地址是否与所需网络匹配,如果请求不匹配则拒绝它来自适当的网络。您将如何着手执行此操作取决于您的服务器端实现。

前端 Javascript 可以通过多种方式破坏(包括将其关闭),因此出于安全原因我会使用服务器端。我已经绕过了很多前端验证。