如何防止用户使用 JavaScript 复制他的 IP? [复制]

Posted

技术标签:

【中文标题】如何防止用户使用 JavaScript 复制他的 IP? [复制]【英文标题】:How to prevent a user from copying his IP using JavaScript? [duplicate] 【发布时间】:2020-07-16 20:03:41 【问题描述】:

在我的网站上,用户有一个活动日志,他可以访问该日志以查看他最近的操作。 在这些操作中,IP 仅为用户显示,例如:

2020-04-04-09:59:02 Action X 192.168.1.251  You did Action X bla bla bla

当然,IP通常是客户端的外网IP。

我想要做的是,当用户复制他的活动日志时屏蔽/隐藏 ip,这样他就不会错误地将其显示给其他人。

我尝试的是下一个:

document.addEventListener('copy', function(t) 
  var e = window
    .getSelection()
    .toString()
    .replace(
      /((0|1[0-9]0,2|2[0-9]?|2[0-4][0-9]|25[0-2.0-98*-5]|[3-9][0-9]?)\.)3(0|1[0-9]0,2|2[0-9]?|2[0-4][0-9]|25[0-5]|[3-9][0-9]?)/g,
      '',
    );
  t.clipboardData.setData('text/plain', e), t.preventDefault();
);

当我尝试复制文本并将其粘贴到此处时,我得到:

2020-04-04-09:59:02 Action X 1 You did Action X bla bla bla

代码几乎可以工作,但我不断收到这个1。我还没有找到解决方法。

JSFiddle:https://jsfiddle.net/aoq1k9nu/

感谢任何帮助。

【问题讨论】:

在此处发帖时能否请您取消缩小您的代码?谢谢。 另外,不要忘记 IPv6 地址... 【参考方案1】:

如果您不担心其他近似于 ipv4 地址的东西,您可以简化正则表达式:/\d1,3\.\d1,3\.\d1,3\.\d1,3/

或者如果你想更加小心https://www.regular-expressions.info/ip.html

/\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/

【讨论】:

以上是关于如何防止用户使用 JavaScript 复制他的 IP? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何防止excel保存后更改csv文件编码? [复制]

如何防止缓存我的 Javascript 文件? [复制]

如何防止用户使用 CSS 复制某个 div 的文本?

程序在python中运行时如何防止用户输入控制台? [复制]

防止用户使用 jquery 或 javascript 重新加载页面 [重复]

如何防止用户生成的 HTML 中的 Javascript 注入攻击