1

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

例子:

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

4

1 回答 1

2

如果不使用某种 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 可以通过多种方式破坏(包括将其关闭),因此出于安全原因,我会使用服务器端的一种。我已经完成了很多前端验证。

于 2019-12-26T03:26:42.853 回答