问题标签 [geoip2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3607 浏览

maxmind - Maxmind GeoIP2 教程(操作方法)?

我使用了 GeoIp,带有纯 PHP 代码.. 但是 GeoIp2 变成了命名空间等,此时我无法找到如何使用它.. 我已经下载GeoLite2-Country.mmdb了,现在如何获取 IP 的国家名称,即123.123.123.123

ps 我没有 GIT/COMPOSER 等。

0 投票
1 回答
407 浏览

php - 如何在 PHP 中将 MaxMind 的 GeoIp2 与另一个自动加载器一起使用?

我安装了 MaxMind 的 GeoIp2 => https://github.com/maxmind/MaxMind-DB-Reader-php

还有 php 扩展https://github.com/maxmind/libmaxminddb用于更快的查找

当我像这样使用它时,一切正常:

当我尝试在我也使用自己的自动加载器的同一个 php 文件上使用它时,问题就开始了:

看起来这 2 个自动加载器相互碰撞,实际上我不能在与我的类混合的文件中使用 GeoIp2。

我该如何解决这个烦人的问题?非常感谢你。

0 投票
0 回答
119 浏览

php - slim 2 GeoIP2 maxmind

我正在开发一个 API Slim 2 项目,我想集成 MaxMind 的 GeoIP2。我已经使用 composer 来安装依赖项,但是似乎我无法从 mysql 数据库中运行 GeoIP 国家/地区查找现有 IP 条目。如果我单独运行脚本(没有 Slim 2),一切都会按预期工作。

本质上,API 返回 json 输出:IPv4/IPv6 和地址类型(ipv4 或 ipv6)。理想情况下,我想添加 GeoIP 位置信息。目前的输出格式:

代码示例: http: //pastebin.com/heMyyKdw

有人将 SLIM 2 与 Maxmind GeoIP2 集成了吗?

0 投票
0 回答
438 浏览

python - Where to initialize the MaxMind IP Database for Django Middleware Use Case

I have the need to test an IPs location during each request. Naturally, this fits nicely with writing a small piece of custom middleware.

Given this is python, is it better to initialize the GeoIP2 instance at the module level or should I initialize it per-request?

I am using django.contrib.gis.geoip2.GeoIP2 which itself uses: https://github.com/maxmind/GeoIP2-python

Specifcially: geoip2.database.Reader()

Looking at the source, first for the django module I see that it has some caching options. I have the libmaxminddb C extension installed and according to the docs in the django source MODE_AUTO = 0 is the default which translates it to trying: MODE_MMAP_EXT, MODE_MMAP, MODE_FILE in that order.

Browsing down to the C extension for the database loading:

https://github.com/maxmind/MaxMind-DB-Reader-python/blob/master/maxminddb/extension/maxminddb.c

It seems to me that the file is not held in memory, which makes perfect sense as that would be an unexpected side effect for anyone using it. That also begs the question:

Given that it looks like the mmdb file it's loaded each time GeoIP2 is called/initialized, and since the local database does not change does it make more sense to initialize GeoIP2 at the module level since every request, in my use case, needs it and by initializing at the module level I would save myself the I/O of reading the file initially each request?

Or should I leave it to be initialized per request and change the caching option to something like MODE_MEMORY?

0 投票
1 回答
568 浏览

php - homestead 安装 GeoIp2 NGINX 模块错误

我需要在我的 Homestead 上安装https://github.com/leev/ngx_http_geoip2_module 。当我首先在 after.sh 中重新编译 nginx 时,我收到一个模块不兼容二进制的错误,我读到我必须使用编译 Nginx 的所有原始标志执行 ./configure。

因此,我使用 nginx -V 获取所有标志,将它们复制并粘贴到我的 after.sh 中,但现在我收到有关某些模块中缺少 /config 文件的错误,而其他模块需要库,例如: ==> homestead-7: ./configure: error: the HTTP image filter module requires the GD library. ==> homestead-7: You can either do not enable the module or install the libraries.

这些这里给了我有关丢失文件的错误(可能是因为 /debian/ 目录甚至不存在于 /nginx-1.11.5/ 目录中,我从 nginx 下载。 --add-dynamic-module=/build/nginx-Rrk92d/nginx-1.11.5/debian/modules/nginx-auth-pam --add-dynamic-module=/build/nginx-Rrk92d/nginx-1.11.5/debian/modules/nginx-echo --add-dynamic-module=/build/nginx-Rrk92d/nginx-1.11.5/debian/modules/nginx-upstream-fair --add-dynamic-module=/build/nginx-Rrk92d/nginx-1.11.5/debian/modules/ngx_http_substitutions_filter_module

任何人都有这种事情的经验,可以给我指点如何以正确的方式做到这一点?

0 投票
0 回答
4531 浏览

ubuntu - nginx 和 geoip2 (geolite2) 错误:不兼容二进制

nginx 不支持geoip2. 在nginx 文档上有一个geoip2 3d 派对模块的参考,所以我想试一试,但我想我缺少一些东西。

以下是我正在研究的机器的一些细节:

这些是我为了编译geoip2模块而采取的步骤:

这些是我动态加载geoip2模块的步骤nginx

当我重新启动nginx服务时,我收到以下错误:

有人有线索吗?

更新: 上面的所有命令都是在root用户下执行的,因此sudo命令不会出现在上面的片段中。

更新2: 根据评论,我在执行之前添加了nginx二进制文件的sha1 make install

这在执行后是一样的make install

sha 摘要是不同的,表明在不同的二进制文件上。我想如果引入一些更改并且编译导致新的不同二进制文件,它应该会有所不同。

我可以看到,当configure在目录中执行命令(如上所述)时nginx,它输出它找到了geoip2作为动态模块。这是输出:

有任何想法吗?

已解决: 当我在一台全新的 ubuntu 机器上重复这些步骤时,问题就解决了。

0 投票
1 回答
403 浏览

geoip - 在 mmdb 文件操作之间更新 Maxmind DatabaseReader

我已经阅读了很多页的文档,但找不到明确的答案。是否允许在打开 DatabaseReader 时修改 mmdb 文件(例如,通过 geoipupdate)?或者任何此类操作是否会使现有的 Reader 实例损坏,并且应该创建一个新实例?我看到 Legacy 格式有一个缓存标志来处理 mmdb 更新,但找不到任何关于新格式的明确信息。

0 投票
1 回答
205 浏览

java - Java Geoip2:获取“java.lang.reflect.InvocationTargetException”异常

我在 Java 中使用 GeoIP2 将 IP 地址转换为来自 maxmind 数据库的位置信息。

我的java代码:

当我构建我的阅读器时,我遇到了java.lang.reflect.InvocationTargetException异常。我认为杰克逊版本(2.5.3)与geoip2不兼容。但我无法修复。

我的依赖版本是:

0 投票
1 回答
270 浏览

angularjs - 如何使用 angularjs 通过 GeoIP 更改链接?

在我的页面中有一个按钮,我想放置一些链接取决于用户所在的国家/地区。

例如,我把这段代码放在角度来理解我的观点。

这段代码对我不起作用。

我错过了什么吗?

0 投票
2 回答
2848 浏览

perl - 具有私有 IP 的自定义 MaxmindDB (geoip2)

如何使用私人 IP 地址创建自定义 Maxmind 数据库。

我需要这样的自定义 Maxmind DB

我尝试关注这个Building Your Own MMDB Database for Fun and Profit。所以我将 PERL 脚本更改为以下内容:

但没有运气。现在我收到以下错误: 当前不允许在没有节点的树中进行迭代。记录类型:在 /usr/local/lib/perl/5.14.2/MaxMind/DB/Writer/Tree.pm 第 292 行处为空。

任何人都可以帮我创建一个带有私有 IP 地址的 GEOIP2 数据库吗?