【问题标题】:Using the Maxmind geo IP database without GeoIP PECL extension?使用没有 GeoIP PECL 扩展的 Maxmind 地理 IP 数据库?
【发布时间】:2012-01-25 21:24:42
【问题描述】:

我正在尝试在免费虚拟主机上上传我的文件以进行试用。我遇到了客户端 ip 定位器的输出问题。我正在使用 maxmind 数据库。 "GeoIP.dat"

<?php print geoip_database_info(GEOIP_COUNTRY_EDITION); ?>

输出是

Fatal error: Call to undefined function geoip_database_info() in /home/u_fg176/public_html/index.php on line 15

是不是因为这个主机没有为php安装pecl ext而找不到函数geoip_database_info()?还是有其他原因导致此错误?

【问题讨论】:

    标签: php geo


    【解决方案1】:

    确实是因为您的主机没有安装 PECL 扩展。您可以改用 equivalent PEAR extension Net_GeoIP,它是用 PHP 编写的,可以简单地包含在您的项目中:

    set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/Net_GeoIP');
    require_once 'Net_GeoIP/Net/GeoIP.php';
    
    $GeoIP = Net_GeoIP::getInstance(GEOIP_COUNTRY_EDITION);
    $location = $GeoIP->lookupLocation($ipAddress);
    

    【讨论】:

    • 感谢您的帮助...我在 Windows 中工作,您的意思是我必须下载 pyrus.phar 文件并将其安装在我的项目文件夹下并上传到此主机中吗??
    • 不,我的意思是你从下载>“仅手动安装下载”(download.pear.php.net/package/Net_GeoIP-1.0.0.tgz)下载PHP源代码。
    • 好的,我刚下载但我仍然收到错误Warning: fopen(106) [function.fopen]: failed to open stream: No such file or directory in /home/u_fg176/public_html/Net/GeoIP.php on line 425 Fatal error: Uncaught &lt;table st.... 似乎GeoIP.dat 无法打开?如何解决这个问题?我将 GeoIP.dat 放在文件夹 /Net/GeoIP/ 是真的吗??
    • 我假设GEOIP_COUNTRY_EDITION 是数据库的位置。用数据库的路径调用Net_GeoIP::getInstance,不管它在哪里。
    【解决方案2】:

    是的,这就是原因。要求他们启用或扩展,如果他们不合作,请寻找替代方案。

    【讨论】:

    • 另一种选择是@deceze 提到的。将文件自己包含在您的项目中。
    猜你喜欢
    • 1970-01-01
    • 2015-10-17
    • 1970-01-01
    • 2014-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    • 2014-03-01
    相关资源
    最近更新 更多