我正在寻求通过大陆地理定位我的服务器请求.
基本上,经过一些初步的研究,似乎有3种方法:1)使用浏览器提供的地理定位(但我认为当浏览器要求允许使用地理定位时,没有人认真点击"是"); 2)获取IP地址列表,将该列表放在服务器上的数据库中,然后每次请求进入时,从该DB读取; 我不想在每次请求时都要打DB.3)对外部服务器进行HTTP调用以获取位置; 甚至可能比2)慢.
基本上,我并不在乎确切知道用户的确切位置,我只需知道他们所在的大陆:North Armerica,Europe ......
有没有办法做到这一点,不需要任何用户交互,并且不需要在每个请求上读取数据库?当我去www.intel.com时,我会自动转到法国网站; 他们是怎么做到的?
谢谢你的建议.
我使用一些GeoIP服务在页面上放置国家标志取决于国家IP.我需要为我网站上的所有页面缓存JSON响应.
此代码放入header.php:
$.getJSON('http://smart-ip.net/geoip-json?callback=?', function(data) {
$('#flag').html("<a class='fancybox-inline int' href='#international'><img src='/images/flags/"+data.countryCode+".png'></a>");
}
Run Code Online (Sandbox Code Playgroud)
是否可以缓存它$.ajaxSetup({ cache: true })? - 似乎行不通.
或者最好使用HTML5 localStorage,但我不知道该怎么做.
我也试过JSONCache插件,但它对我不起作用.
有谁知道如何安装GeoIP's C library上Windows的几个简单的步骤.即使是一些复杂的步骤也可以.我研究并尝试从安装文件中编译它但多次失败.有时,我会收到错误消息,说GeoIP.h无法找到.其他时候我得到bugtrack_url的不是编译的有效选项.
我尝试过使用pip install GeoIP,我也尝试过使用setup.py.
有没有人有幸在Windows上设置这个?
是否有可靠的 Web服务提供API来将IP地址转换为某个位置,即city, region, country.愿意支付,但需要坚实可靠的东西.
这是我正在使用的模块: http: //wiki.nginx.org/HttpGeoipModule
据我所知,由于它是在 nginx 配置和 uwsgi 上配置的,所以看起来别无选择,只能让它在每个页面上运行 geoip,然后仅在需要时收集和使用变量。
从性能的角度来看,我宁愿拥有它,所以我仅在需要时请求 geoip,将其缓存在 cookie 或会话中,然后不再请求它以加快站点速度。
有人能告诉我这是否可能吗?
我的应用程序的服务需要访问一个名为的$_SERVER变量(由apache提供):$_SERVER['GEOIP_COUNTRY_CODE'];
有什么好方法可以达到这个目的?
我目前的猜测是注入RequestStack但另一方面我不想将完整的RequestStack耦合到这个服务.
还有其他方法可以实现这一目标吗?
PS请不要回复我的链接,如https://github.com/aferrandini/Maxmind-GeoIp等.
我正在尝试使用免费的MaxMind GeoLite2代码来确定特定IP地址的国家/地区.
我正在使用此处发布的无Composer方法: 通过Maxmind GeoLite2免费获取用户城市的本地化名称
我确信它非常简单,但我无法弄清楚如何实际传递IP地址并让它返回国家.
在$reader = new Reader...我拥有的行之后$place = $reader->country('##.###.##.###');(其中#是实际的IP地址编号)并且它不起作用.我尝试用"城市"取代"乡村",但也没有用.我确定它很简单,我只是不确定我需要使用什么参数才能让国家返回.
错误日志中显示的错误是'PHP致命错误:调用未定义的方法MaxMind\Db\Reader :: city()<<< path to benchmark.php >>>)'
任何想法/建议将不胜感激.
试图捆绑一个已经gem geoip-c获得的应用程序
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/durrantm/.rvm/rubies/ruby-2.1.5/bin/ruby -r ./siteconf20151116-4194-j
cyop7.rb extconf.rb
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... yes
checking for GeoIP_record_by_ipnum() in -lGeoIP... no
you must have geoip c library installed!
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
Run Code Online (Sandbox Code Playgroud)
如何克服这个? …
我在尝试安装 GeoIP2 时遇到此错误。不幸的是,错误消息不是很容易在谷歌上搜索,我不知道如何修复它。很明显缺少一些东西,但我不确定是什么。我对作曲家不太有经验。任何人都可以帮我破译这个错误吗?
$ composer require "geoip2/geoip2":"~2.0"
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- geoip2/geoip2 v2.3.1 requires maxmind/web-service-common ~0.0.3 -> satisfiable by maxmind/web-service-common[v0.0.3, v0.0.4].
- geoip2/geoip2 v2.3.2 requires maxmind/web-service-common ~0.0.3 -> satisfiable by maxmind/web-service-common[v0.0.3, v0.0.4].
- geoip2/geoip2 v2.3.3 requires maxmind/web-service-common ~0.0.3 -> satisfiable by maxmind/web-service-common[v0.0.3, v0.0.4].
- geoip2/geoip2 v2.4.0 requires maxmind/web-service-common ~0.0.3 -> satisfiable by maxmind/web-service-common[v0.0.3, v0.0.4].
- …Run Code Online (Sandbox Code Playgroud) 有人可以帮忙吗?我需要修复该错误,以便 S3 中的 CloudTrail 日志可以发送到 Logstash ES 并在 Kibana 中查看。无法弄清楚如何将字段限制提高到更高。我的配置看起来像
input {
s3 {
bucket => "sample-s3bucket"
region => "eu-west-1"
type => "cloudtrail"
codec => cloudtrail {}
sincedb_path => "/tmp/logstash/cloudtrail"
exclude_pattern => "/CloudTrail-Digest/"
interval => 300
}
}
filter {
if [type] == "cloudtrail" {
json {
source => "message"
}
geoip {
source => "sourceIPAddress"
target => "geoip"
add_tag => ["cloudtrail-geoip"]
}
}
}
output {
elasticsearch {
hosts => "coordinate_node:9200"
index => 'cloudtrail-%{+YYYY.MM.dd}'
}
stdout {
codec => …Run Code Online (Sandbox Code Playgroud)