JavaScript 绕过浏览器扩展获取客户端 IP 地址

JavaScript to get Client IP Address bypassing Browser Extensions

我正在使用外部 API,API 的部分参数是 IP 地址。我查阅了如何操作并使用了 ipify version in this answer 因为它没有限制。这是脚本:

$.getJSON('https://api.ipify.org?format=jsonp&callback=?', function(data) {
  console.log(data); 
  console.log(data.ip.toString()); 

  retrieved_entity_ip = data.ip.toString();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>

它一直运行良好,直到一些客户端显示错误,根据日志,这是因为他们的 IP 地址丢失了。我将范围缩小到他们的浏览器扩展 uBlock Origin,它阻止了脚本 运行.

是否有更可靠的方法来执行此操作而无需升级到付费等级?

您可以使用 public 服务 not blacklisted by ad blockers, like https://www.myexternalip.com/json 但最终它也可以被列入黑名单,它不受您的控制。

降低使用可能被列入黑名单的服务的风险的最可靠方法是按照说明中的建议构建您自己的服务器,或者在请求失败的情况。可能你不花钱就解决不了你的“问题”。