PHP |开发者库 | IP 地理定位API | WhoisXML API

PHP语言IP地理定位客户端库 PHP语言IP地理定位客户端库

如何在PHP中执行IP地理定位查询?

在本文中,我将向您介绍如何在PHP 语言中查询IP地址的物理定位(也称为IP geolocation )。

可是,并没有硬性或快速的方法来确定 IP 地址的物理位置。相反,IP地理定位服务提供商将许多不同的数据放在一起,以构建一个准确的 IP 位置数据库。

IP 地理定位数据通常包括:

  • 域名WHOIS 数据(其本身必须由数据提供商汇总)
  • 区域互联网注册管理机构,向世界各地的各种互联网服务提供商分发大量 IP 地址( ISPs )
  • BGP 源自于大型的互联网服务提供商
  • 延迟信息(来自某些物理位置的数据包到达目标 IP 所需的时间)

如自己获取上述所有信息非常复杂且昂贵,但值得庆幸的是,有一些服务提供商已经完成信息汇总,并为用户提供方便使用的IP地理定位数据。

现在我们将向您展示如何使用新发布的simple-geoip PHP 库来执行IP地理定位数据库查询,并返回您可能想要查询的任何IP地址的物理位置。

创建一个IP地理定位 API 查询帐号

使用 simple-geoip 库,首先是创建一个免费的IP地理定位API 帐号: https://ip-geolocation.whoisxmlapi.com/signup

IP地理定位API是IP地理定位最大最便宜的服务提供商。用户可以使用IP地理定位API服务运行每月 1,000 次免费IP地理定位查询,或者支付每月 27 美元1000次查询的固定费用。点击此处可查看额外的价格计划。

当您创建并登录到IP地理定位API 帐户后,可查看帐户的产品页面并复制获取 API 密钥——稍后可用密钥来运行IP地理定位查询。

安装 simple-geoip 包

账户设置好后,安装以下安装包。从命令行运行以下命令:

                
$ composer require whois-api/simple-geoip
                
                

将从 packagist 下载并安装最新版本的simple-geoip安装包。

使用 simple-geoip 运行IP地理定位查询

现在您已经拥有一个帐户并安装了 simple-geoip 包,接下来可以运行一些代码来查询您想要的任何 IP 地址的物理地址。

这是一个小脚本,`geoip.php`,它将找到一个热门的 IP 地址(`8.8.8.8`,Google 的核心 DNS 服务器之一)的物理位置:

            
<?php
require_once __DIR__ . '/../vendor/autoload.php';
use WhoisApi\SimpleGeoip\Builders\ClientBuilder;
$builder = new ClientBuilder();
$client = $builder->build('API_KEY');
try {
    echo $client->getRawData('8.8.8.8') . PHP_EOL;
    echo print_r($client->get('8.8.8.8'), true) . PHP_EOL;
} catch(\Exception $e) {
    echo $e->getMessage();
}
            
            

如您所见,使用该数据库只需三个步骤:

  • 需要使用者自动加载文件。
  • 导入为您构建的客户端。
  • 提供您在注册时创建的 API 密钥,并使用构建器构建 API 客户端对象IP 地理定位API 服务。
  • 运行 getRawData 方法,输入要验证的 IP 地址。此外,您还可以指定结果格式(json 或 xml)。此方法将返回一个字符串,其中包含各种格式 (json/xml) 的结果。
  • 运行 `get` 方法,输入您想要获取其位置的 IP 地址。此方法将返回一个 ResponseModel 对象,其中包含经过良好解析的数据,包括地址、邮政编码、时区等。

从 get 方法返回的数据将如下所示:

            
WhoisApi\SimpleGeoip\Models\Response 对象 ( [ip] => 8.8.8.8 [地址] => WhoisApi\SimpleGeoip\Models\Location Object ( [国家] => US [地区] => California [城市] => Mountain View [经度] => 37.40599 [纬度] => -122.078514 [邮政编码] => 94043 [时区] => -07:00 ) )
            
            

这个 PHP 对象会告诉您有关“8.8.8.8” IP 地址的物理位置的所有信息。

在后台, IP地理定位API服务正在处理所有IP地理定位数据库查询和数据聚合——从供应商处获取数据并每天处理数百万次更新。

使用新的IP地理定位数据

现在用户可以轻松使用 simple-geoip 库查找 IP 地址的物理位置,快快开始运用IP地理定位查询所需的产品或服务吧!

一些常见的IP地理定位数据使用案例包括:

  • 在用户访问您的网站时检测他们所在的国家/地区,并根据他们的位置(语言、广告、设计、货币等)为他们提供定制的体验
  • 阻止来自某些特定位置的用户访问您的网站。例如,如果您是视频流媒体提供商并且仅有权在特定国家/地区传输视频, IP地理定位查询服务可以为您提供该数据,并仅为合法经营地区的客户提供服务。
  • 欺诈和规避风险。如果注意到来自特定位置的大量欺诈,暂时阻止来自该位置的访问者可以快速地减少欺诈和其他问题。

通过分析您网站访问者的 IP 地址,可极大地增强任何网络产品和服务。

使用simple-geoip

总结一下:运行IP地理定位查询并不难或昂贵。使用我们新的https://github.com/whois-api-llc/php-simple-geoip PHP 库和IP 地理定位 API服务,你可轻松构建和管理一个大型的网络产品。

如需执行IP地理定位查询,请查看simple-geoip库,会让IP地址位置信息查询变得非常简单。

如果您有任何问题,请联系我们