如何检查我服务器中安装的GEOIP模块

时间:2013-11-23 07:48:24

标签: php geolocation geoip

我正在使用一个使用GEOIP模块的插件。我不确定这个模块是否安装在我的服务器中,因为这是一个共享服务器。 我需要一些PHP脚本来检查是否安装了这个模块。 我找到了这个脚本:

$mods = apache_get_modules();

if (array_search('mod_geoip',$mods)){
   print "GEO IP exist";
}else{
   print "GEO IP Doesn't Exist";
}

但最终出现了这个错误:

  

致命错误:调用未定义的函数apache_get_modules()   第2行的testmodule.php

1 个答案:

答案 0 :(得分:1)


我有同样的问题来确定geoip是否作为apache-module安装。 但是geoip(如apache-mod)提供了一些函数来查找国家代码。 这就是重点,您必须检查php functions_exists()是否存在某些geoip函数。 我自己测试了这个解决方案。 我使用该功能的原因是将我的工具移动到许多服务器上,使用不同的apache-mods,如“geoip”等。希望这个解决方案很有用!?

if ( function_exists("geoip_country_code_by_name") ){
    $geoip = geoip_country_code_by_name($_SERVER["REMOTE_ADDR"]);
} else { 
    include($_SERVER['DOCUMENT_ROOT'] . "/geoip/geoip.inc");
    include($_SERVER['DOCUMENT_ROOT'] . "/geoip/geoipregionvars.php");
    $gi = geoip_open($_SERVER['DOCUMENT_ROOT'] . "/geoip/data/GeoIP.dat",GEOIP_STANDARD);
    $geoip = geoip_country_code_by_addr($gi,$_SERVER['REMOTE_ADDR']);
    geoip_close($geoip);
}