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

标签 javascript network-programming

我想阻止未连接到指定网络的用户提交表单。我应该怎么做? 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(包括将其关闭),因此出于安全原因,我会使用服务器端。我已经绕过了很多前端验证。

关于javascript - 如果未连接到确定的网络,则阻止访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59483242/

相关文章:

sockets - 哪些协议(protocol)值与 socket() 中的哪些域和类型组合兼容?

c# - 将控制台聊天程序转换为 GUI

javascript - 在 Node.js 脚本中运行两个脚本

javascript - Date.js 'tt' 格式不起作用?

javascript - 重新添加元素的 jQuery 类更改

javascript - 显示/隐藏表格中的元素

Python 在文本字符串中查找值

javascript - 查询内部解析云 For 循环

java - 使用 NIO 避免高 CPU 使用率

c# - 什么时候选择套接字编程而不是 WCF?