如何通过PHP检测中东访问者?

我正在寻找一种明确的方式来检测访客是否来自中东.如果是的话,我需要显示一个不同的标题图像(当前的标题图像中有一个标记图像,所以它不受欢迎).

我可以编写if then else,但我只是想找一个简单的函数来检测.这是我用来通过IP获取国家的功能:

function get_country_by_ip($ip){

    if(!$ip) return false;    # Missing parameter

    # Pull the XML
    $url = 'http://api.hostip.info/?ip='.$ip;
    $xml = simplexml_load_file($url);

    # Parse the data and store into array
    $citystate = explode(", ", $xml->children('gml', true)->featureMember->children()->Hostip->children('gml', true)->name);
    $result['city'] = $citystate[0];
    $result['state'] = $citystate[1];
    $result['country'] = $xml->children('gml', true)->featureMember->children()->Hostip->countryName;
    $result['country_abbr'] = $xml->children('gml', true)->featureMember->children()->Hostip->countryAbbrev;

    return (object) $result;

}

有人可以帮忙吗?谢谢.

解决方法:

您可以定义哪些国家属于“中东”组 – 通过直接在PHP文件或数据库中定义可配置数组,然后检查您的函数返回的给定国家/地区是否属于属于“中东”的国家/地区列表.通过你的例子,这样的事情:

$middleEast = array(
 'Syria',
 'Iraq',
 ... // all the rest
);

$country = get_country_by_ip($ip);

if (in_array($country['country'], $middleEast) {
 echo 'Middle East!';
 exit;
}
上一篇:nginx之Geoip读取地域信息模块


下一篇:通过UWSGI / NGINX将参数传递给Python Flask