问题标签 [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.
java - Java geoip2 java.io.FileNotFoundException:
我使用geoip2通过ip确定国家。在代码的开发和测试过程中,我没有任何问题,但是当我运行编译的归档时,我遇到了 java.io.FileNotFoundException 异常。我知道这是因为文件的路径是绝对的,并且在存档中它会更改。问题:我需要如何更改我的代码,以便即使从存档中我也可以访问该文件?
nginx - NGINX GeoIP2 阻止国家并实现自定义 403 页面
这让我很生气,希望有人可以提供帮助。我有以下警告:But the 403 page is not friendly to blocked countries
,我想将被阻止的人重定向到自定义 403 页面。
我的自定义文件位于/var/www/sitename/403/index.html
. 我尝试了很多建议,但没有奏效:(
multithreading - 在多线程环境中更新 geoip2 DatabaseReader
我正在使用来自 maxmind geoip2 API 的 DatabaseReader 对象。
val reader = new Builder(new FileInputStream(filePath)).build
. 该对象已经是线程安全的,并且在多个读取器线程之间共享。它使用 AtomicReference 存储相关信息,并实现 Closeable 接口以释放数据。
this.bufferHolderReference = new AtomicReference<>(bufferHolder);
我定期下载一个新的数据库文件,并希望将阅读器对象更新为新的。重新创建此对象的正确方法是什么,以便读取器线程没有故障(它们总是得到正确的对象)并且没有内存泄漏。我也尝试将这个阅读器对象包装在 AtomicReference 中,但由于某种原因我有内存泄漏。
nginx - 如何在没有 if 的情况下阻止某些国家/地区(geoip2)的页面?
如果不使用if但在 nginx 中使用带有模块 --with_geoip2_module (动态)的map来阻止除所选国家之外的所有国家和除所选之外的所有 ip,如何使它像这样工作:
但没有如果?
森托斯 7
这是我的 /etc/nginx/nginx.conf
我非常感谢您的帮助!
ip-address - Maxmind Geoip2 API vs 可下载数据库
我想知道 maxmind 可下载数据库的使用与他们的直接 Web API 之间的区别。如果我将 maxmind 数据库本地下载到我的服务器而不是使用他们的直接 Web API,有什么特别的好处吗?两者之间有任何准确性差异吗?我应该非常频繁地更新 maxmind GeoIP2 数据库以获得准确性吗?这里最好的选择是什么,为什么人们选择可下载的数据库?
nginx - 如何使用 nginx 和 GeoIP 模块阻止来自特定国家的访问者
我想阻止特定国家的访问者www.mainwebsite.com
通过 Nginx 和 GeoIP 模块访问我的网站。
首先我试穿了www.test.com
。www.test.com
在尝试之前,我在测试网站上遵循了哪些步骤www.mainwebsite.com
- 安装 GeoIP:
- 检查 GeoIP 模块是否安装:
- 下载 GeoIP 数据库:
将 GeoIP.dat 文件放置到 /etc/nginx/GeoIP/ 位置。
- 配置 Nginx 和虚拟主机。须藤 vi /etc/nginx/nginx.conf
保存并退出。
- sudo vi /etc/nginx/site-available/test.com 在服务器外开始添加地图行{......}
之后,在 server{......} 设置中,添加 IF 条件。
保存并退出。
- 重新加载并重启 nginx
因此www.test.com
直接托管在test-server-01
具有公共网络/IP 的 Ec2 实例上,阻止工作并且用户无法从被阻止的国家/地区访问。
www.mainwebsite.com
托管到经典负载均衡器,而 ec2 实例附加到经典负载均衡器。
为了测试,我创建了服务器的 2 个副本服务器test-server-01
并创建了新的负载均衡器,并将两个副本服务器连接到负载均衡器后面并指向www.test.com
新的负载均衡器。但是 Geo Country 阻止不起作用,所以我在第 5 点中提到的 IF 条件(如果条件)上方添加了 2 行,然后阻止工作。
现在我按照相同的步骤 1 到 6 对&www.mainwebsite.com
进行了更改,但国家/地区屏蔽不起作用。nginx.conf
/etc/nginx/site-available/mainwebsite.com
我在这里怀疑,对于www.test.com
,/etc/nginx/site-available/test.com
和链接文件的内容/etc/nginx/site-enabled/test.com
是相同的。
但是对于www.mainwebsite.com
,文件的内容/etc/nginx/site-available/mainwebsite.com
并不/etc/nginx/site-enabled/mainwebsite.com
相同。
/etc/nginx/site-enabled/mainwebsite.com
有一些额外的内容,例如:在 server{} 块之外
并在 server{} 块内。
这是国家封锁不起作用的实际原因吗?或者还有其他原因?请帮帮我。
python - GeoDjango:使用 geoip2 获取准确的设备位置
我正在尝试获取用户设备位置。但是 geoip2 返回一个远离用户位置的位置(大约 20 公里到 25 公里)。当我通过移动网络连接我的设备时,当我将我的设备与 wifi 连接时,它会显示不同的位置
首先,我正在获取用户 ip
但这会获取用户的私有 ip,并且私有 ip 不在国家或城市数据集中,因此 geoip2 会引发错误。
所以我尝试通过网站获取公共IP地址
现在我使用 geoip2 来获取用户的位置数据
您能否建议一种更好的方法或正确的方法来获取用户的准确位置?
nginx - 什么时候在 NGINX 上计算变量
声明新变量(例如map
geoIP2 或 geoIP2)总是在http
上下文中。
假设我只需要在配置中的某个location
块上检查 ip 的位置,这是否意味着与 geoIP2 相关的这些变量将在与服务器建立的任何连接中或仅在其被调用时计算?
我想知道 NGINX 是如何工作的,什么时候计算变量?
例子:
nginx - 在 Nginx 中使用 GeoIP2 获取用户国家
我一直在努力让这件事正常工作,但似乎无论我做什么,X-Country
都会获得值“US”,因为这是X-Forwarded-To
标题中最后一个 IP 地址的国家/地区。这是 Google 的负载平衡器之一。
我似乎也找不到很多在线正确配置的示例,我发现的大多数源代码都是针对 GeoIP v1 的。
文件 /usr/share/GeoIP/GeoLite2-Country.mmdb 存在,并且已经过验证,可以为我正在测试的 IP 地址返回正确的国家/地区。Sentry Python SDK 还根据标头中的第一个 IP 将 IP 地址解析为瑞典。
有任何想法吗?
如果我删除所有 GeoIP2 配置,这是 Nginx 变量的状态:
似乎没有任何组合set_real_ip_from
等会分配任何变量,<my.real.ip>
以便我可以使用它。
编辑:以下似乎可行,但我认为它可以欺骗:
所以似乎我的geoip2_proxy
声明在某种程度上是一个问题,但我不确定如何?
apache - Mod_security 不会阻止以下国家/地区
我为 Apache 配置了 mod_security 和 GeoIP2。GeoLite2-Country.mmdbgeoipupdate
每周都会被 cron 触发下载。我的/etc/modsecurity/modsecurity.conf
配置如下:
我/etc/modsecurity/crs-setup.conf
对 GeoIP 数据库的看法:
从我的本地机器运行 curl:curl 'https://host/login/index.html?modsecparam=test'
在日志中留下跟踪:
但是由于某种原因,它不会阻止除 PL 以外的国家/地区。我做错了什么?