我想阻止未连接到指定网络的用户提交表单。我应该怎么做? Javascript 解决方案正是我一直在寻找的。p>
示例:
如果没有连接到我的家庭网络,您将无法访问 foo 页面
最佳答案
如果不使用某种 API,前端 Javascript 无法获取用户的 IP 地址。
这里有两种选择:
- 使用 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>
- 您可以在服务器端为提交表单添加某种验证,检查 IP 地址是否与所需网络匹配,如果请求不是来自适当的网络则拒绝它.您将如何着手执行此操作取决于您的服务器端实现。
可以通过多种方式破坏前端 Javascript(包括将其关闭),因此出于安全原因,我会使用服务器端。我已经绕过了很多前端验证。
关于javascript - 如果未连接到确定的网络,则阻止访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483242/