php geo ip loc不起作用

编程入门 行业动态 更新时间:2024-10-23 16:24:24
本文介绍了php geo ip loc不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

chir.ag/projects/geoiploc/

您好,我正在尝试设置它,但每当我使用 include(geoiploc.php); 时,页面都是空白的,每当我删除 include(geoiploc.php); 我只看到我的IP地址。我已经将geoiploc.php和index.php上传到可以运行PHP的webhost。

Hello, I am trying to set this up, but whenever I use include("geoiploc.php"); the page is blank and whenever I remove include("geoiploc.php"); I only see my IP address. I've uploaded geoiploc.php and index.php to a webhost that can run PHP.

如果有其他更简单的方式通过IP或任何其他方式显示国家/地区名称,这是什么?我需要这么快

If there is ANY other easier way to show country name by IP or any other way, which is it? Please I need this fast

正如我所说的,每当我删除 include(geoiploc.php)时,它只显示我的IP; 为什么?

So as I said, it only shows my IP whenever I remove include("geoiploc.php"); why?

你需要这个库: chir.ag/projects/geoiploc/autogen/geoiploc.tar.gz 这是运行脚本的代码:

You need this library: chir.ag/projects/geoiploc/autogen/geoiploc.tar.gz and this is the code to run the script:

include("geoiploc.php"); // Must include this // ip must be of the form "192.168.1.100" // you may load this from a database $ip = $_SERVER["REMOTE_ADDR"]; echo "Your IP Address is: " . $ip . "<br />"; echo "Your Country is: "; // returns country code by default echo getCountryFromIP($ip); echo "<br />\n"; // optionally, you can specify the return type // type can be "code" (default), "abbr", "name" echo "Your Country Code is: "; echo getCountryFromIP($ip, "code"); echo "<br />\n"; // print country abbreviation - case insensitive echo "Your Country Abbreviation is: "; echo getCountryFromIP($ip, "AbBr"); echo "<br />\n"; // full name of country - spaces are trimmed echo "Your Country Name is: "; echo getCountryFromIP($ip, " NamE "); echo "<br />\n";

推荐答案

您可以使用免费的MaxMind Geo Lite。在此处下载文件: http://www.maxmind。 com / download / geoip / api / php / php-latest.tar.gz

You can use the free MaxMind Geo Lite. Download the files here: www.maxmind/download/geoip/api/php/php-latest.tar.gz

然后从这里下载地理国家数据库: dev.maxmind/geoip/legacy/geolite

Then download the Geo Country database from here: dev.maxmind/geoip/legacy/geolite

您现在可以像这样使用它:

You can now use it like this:

<?php include("geoip.inc"); function ipAddress(){ if (!empty($_SERVER['HTTP_CLIENT_IP'])){ //check ip from share internet $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ // proxy pass ip $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } $gi = geoip_open("path/to/GeoIP.dat",GEOIP_STANDARD); echo geoip_country_name_by_addr($gi, ipAddress()); // echo geoip_country_code_by_addr($gi, ipAddress()); <-- country code geoip_close($gi); ?>

更新:要获取用户的城市,您应该下载顶部链接查找名为 sample_city.php 的文件以查看一些示例代码。您需要下载此文件: http://geolite.maxmind。 com / download / geoip / database / GeoLiteCity.dat.gz 并将其放在与php文件相同的目录中。一个简单的例子是:

UPDATE: to get the user's city you should download the top link and look for the file called sample_city.php to see some example code. You'll need to download this file: geolite.maxmind/download/geoip/database/GeoLiteCity.dat.gz and place it in the same directory as your php file. A quick example would be:

<?php include("geoipcity.inc"); function ipAddress(){ if (!empty($_SERVER['HTTP_CLIENT_IP'])){ //check ip from share internet $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){ // proxy pass ip $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } $gi = geoip_open("GeoIPCity.dat",GEOIP_STANDARD); $record = geoip_record_by_addr($gi,ipAddress()); print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n"; geoip_close($gi); ?>

更多推荐

php geo ip loc不起作用

本文发布于:2023-11-01 23:12:57,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1550685.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:不起作用   geo   php   loc   ip

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!