为什么我的 geoip 查询在我的生产服务器上不起作用?

问题描述 投票:0回答:0

我很难让 Maxmind 的 geolite2 地理定位在客户端工作。 首先我找到了这个页面:Geolocate an IP address using Web Services

我尝试使用 curl 命令中的 URL,并使用我生成的许可证密钥进行身份验证:

let geoData = axios.get('https:///geolite.info/geoip/v2.1/country/me?pretty', {
    auth: {
        username: <myuser>,
        password: <mylicensekey>
    }
});

这在 Node.js 中有效,但在客户端我得到一个 CORS 错误。

然后我找到了另一个页面:使用带有客户端 JavaScript 的 Web 服务定位 IP 地址

成功了,但我不想使用非 npm 打包的库,所以我检查了库的源代码,看到它调用了与上面不同的 URL:

https://geoip-js.com/geoip/v2.1/country/me?

尝试这个新的 URL,我发现它只能 without 身份验证。我不明白为什么,但无论如何......它奏效了。至少在我将代码发送到生产之前。 使用本地主机,它工作正常,但在生产中我收到一条错误消息,说我必须注册我的域。

本页“注册您的域名”中提供的链接:

https://dev.maxmind.com/geoip/geolocate-an-ip/client-side-javascript?lang=en

导致

https://www.maxmind.com/en/accounts/790937/geoip/javascript/domains
让我进入付费服务注册页面:
https://www.maxmind.com/en/accounts/790937/geoip/javascript/domains

是吗?客户端地理定位是否仅作为付费服务提供?

所以我想知道:

  1. 如果有办法为免费服务注册域名,我应该在哪里注册我的域名?
  2. 如果我可以在客户端使用带有 id 和许可证密钥的
    https://geolite.info/geoip/v2.1/country/me?pretty
    URL,我如何摆脱 CORS 消息?

我想在不发送用户IP地址的情况下获取数据,就像我们使用id和许可证密钥访问

https://geolite.info/geoip/v2.1/country/me?pretty
时一样。

目前我想使用MaxMind的免费数据

javascript node.js geoip maxmind freegeoip
© www.soinside.com 2019 - 2024. All rights reserved.