php - 如何通过 PHP 检测中东访客?

标签 php geoip

我正在寻找一种明确的方法来检测访客是否来自中东。如果是,我需要显示不同的标题图片(当前图片中有一只 pig ,所以不受欢迎)。

我可以为此编写 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;
}

关于php - 如何通过 PHP 检测中东访客?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7667464/

相关文章:

php - mysql 连接多个where

javascript - 我的 IP 地址的 Maxmind GeoIP 重定向异常

geoip - 如何查找 IP 地址的历史地理位置,也许使用 maxmind?

javascript - 如何使用 Javascript 检测最近的服务器来测试延迟/ping 速度?

php - 以下查询有什么问题

php - 无法让 .php 输出到浏览器

php - 如何使用 Amazon AWS Elastic Beanstalk 安装 PHP 扩展?

database - 我应该保存 GeoIP 数据吗

php 错误日志,如何删除重复项/查找唯一错误

javascript - 如何以编程方式防止网页在特定时间段内刷新?