ip2location / ip2location-laravel
查询访问者IP信息,例如国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌名称、海拔和用途类型。
1.3.1
2023-11-30 06:22 UTC
Requires
- php: >=5.4
- ip2location/ip2location-php: >=9.4
README
IP2Location Laravel扩展使用户能够使用IP2Location数据库,通过IP地址查找国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌名称、海拔、用途类型、IP地址类型和IAB广告类别。它已针对速度和内存利用进行了优化。
注意:此扩展适用于Laravel 6、Laravel 7、Laravel 8和Laravel 9。
安装
运行以下命令: composer require ip2location/ip2location-laravel
将包下载到Laravel平台。
用法
IP2Location Laravel扩展能够从BIN数据库或Web服务查询IP地址信息。本节将解释如何使用此扩展从BIN数据库和Web服务进行查询。
BIN数据库
- 下载IP2Location BIN数据库
- 在https://lite.ip2location.com下载IP2Location免费LITE数据库
- 在https://www.ip2location.com下载IP2Location商业数据库
- 要使用IP2Location数据库,请在
database
目录中创建一个名为ip2location
的文件夹。 - 解压缩并将BIN文件复制到
database/ip2location/
文件夹。 - 将BIN文件重命名为IP2LOCATION.BIN。
- 使用以下命令在Laravel中创建一个
TestController
php artisan make:controller TestController
- 在任何文本编辑器中打开
app/Http/Controllers/TestController.php
。 - 要将IP2Location数据库添加到控制器文件中,请添加以下行。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use IP2LocationLaravel; //use IP2LocationLaravel class class TestController extends Controller { //Create a lookup function for display public function lookup(){ //Try query the geolocation information of 8.8.8.8 IP address $records = IP2LocationLaravel::get('8.8.8.8', 'bin'); echo 'IP Number : ' . $records['ipNumber'] . "<br>"; echo 'IP Version : ' . $records['ipVersion'] . "<br>"; echo 'IP Address : ' . $records['ipAddress'] . "<br>"; echo 'Country Code : ' . $records['countryCode'] . "<br>"; echo 'Country Name : ' . $records['countryName'] . "<br>"; echo 'Region Name : ' . $records['regionName'] . "<br>"; echo 'City Name : ' . $records['cityName'] . "<br>"; echo 'Latitude : ' . $records['latitude'] . "<br>"; echo 'Longitude : ' . $records['longitude'] . "<br>"; echo 'Area Code : ' . $records['areaCode'] . "<br>"; echo 'IDD Code : ' . $records['iddCode'] . "<br>"; echo 'Weather Station Code : ' . $records['weatherStationCode'] . "<br>"; echo 'Weather Station Name : ' . $records['weatherStationName'] . "<br>"; echo 'MCC : ' . $records['mcc'] . "<br>"; echo 'MNC : ' . $records['mnc'] . "<br>"; echo 'Mobile Carrier : ' . $records['mobileCarrierName'] . "<br>"; echo 'Usage Type : ' . $records['usageType'] . "<br>"; echo 'Elevation : ' . $records['elevation'] . "<br>"; echo 'Net Speed : ' . $records['netSpeed'] . "<br>"; echo 'Time Zone : ' . $records['timeZone'] . "<br>"; echo 'ZIP Code : ' . $records['zipCode'] . "<br>"; echo 'Domain Name : ' . $records['domainName'] . "<br>"; echo 'ISP Name : ' . $records['isp'] . "<br>"; echo 'Address Type : ' . $records['addressType'] . "<br>"; echo 'Category : ' . $records['category'] . "<br>"; } }
- 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
- 输入URL /public/test 并运行。您应该看到IP地址8.8.8.8的信息。
Web服务
- 要使用IP2Location.io或IP2Location Web服务,在
config
目录中创建一个名为"site_vars.php"的新文件。 - 在site_vars.php中,为IP2Location.io保存以下内容
<?php
return [
'IP2LocationioAPIKey' => 'your_api_key', // Required. Your IP2Location.io API key.
'IP2LocationioLanguage' => 'en', // Optional. Refer to https://www.ip2location.io/ip2location-documentation for available languages.
];
或保存以下内容为IP2Location
<?php return [ 'IP2LocationAPIKey' => 'your_api_key', // Required. Your IP2Location API key. 'IP2LocationPackage' => 'WS1', // Required. Choose the package you would like to use. 'IP2LocationUsessl' => false, // Optional. Use https or http. 'IP2LocationAddons' => [], // Optional. Refer to https://www.ip2location.com/web-service/ip2location for the list of available addons. 'IP2LocationLanguage' => 'en', // Optional. Refer to https://www.ip2location.com/web-service/ip2location for available languages. ];
- 使用以下命令在Laravel中创建一个
TestController
php artisan make:controller TestController
- 在任何文本编辑器中打开
app/Http/Controllers/TestController.php
。 - 要将IP2Location数据库添加到控制器文件中,请添加以下行。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use IP2LocationLaravel; //use IP2LocationLaravel class class TestController extends Controller { //Create a lookup function for display public function lookup(){ //Try query the geolocation information of 8.8.8.8 IP address $records = IP2LocationLaravel::get('8.8.8.8', 'ws'); echo '<pre>'; print_r($records); echo '</pre>'; } }
- 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
- 输入URL /public/test 并运行。您应该看到IP地址8.8.8.8的信息。
IPTOOLS
- 使用以下命令在Laravel中创建一个
TestController
php artisan make:controller TestController
- 在任何文本编辑器中打开
app/Http/Controllers/TestController.php
。 - 要使用IP2Location IPTools类,将以下行添加到控制器文件中。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use IP2LocationLaravel; //use IP2LocationLaravel class class TestController extends Controller { //Create a lookup function for display public function lookup(){ var_dump(IP2LocationLaravel::isIpv4('8.8.8.8'));echo '<br>'; var_dump(IP2LocationLaravel::isIpv6('2001:4860:4860::8888'));echo '<br>'; print_r(IP2LocationLaravel::ipv4ToDecimal('8.8.8.8'));echo '<br>'; print_r(IP2LocationLaravel::decimalToIpv4(134744072));echo '<br>'; print_r(IP2LocationLaravel::ipv6ToDecimal('2001:4860:4860::8888'));echo '<br>'; print_r(IP2LocationLaravel::decimalToIpv6('42541956123769884636017138956568135816'));echo '<br>'; print_r(IP2LocationLaravel::ipv4ToCidr('8.0.0.0', '8.255.255.255'));echo '<br>'; print_r(IP2LocationLaravel::cidrToIpv4('8.0.0.0/8'));echo '<br>'; print_r(IP2LocationLaravel::ipv6ToCidr('2002:0000:0000:1234:abcd:ffff:c0a8:0000', '2002:0000:0000:1234:ffff:ffff:ffff:ffff'));echo '<br>'; print_r(IP2LocationLaravel::cidrToIpv6('2002::1234:abcd:ffff:c0a8:101/64'));echo '<br>'; print_r(IP2LocationLaravel::compressIpv6('2002:0000:0000:1234:FFFF:FFFF:FFFF:FFFF'));echo '<br>'; print_r(IP2LocationLaravel::expandIpv6('2002::1234:FFFF:FFFF:FFFF:FFFF'));echo '<br>'; } }
- 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
- 输入URL /public/test 并运行。
依赖关系
此库需要IP2Location BIN数据文件或IP2Location API密钥才能运行。您可以在以下位置下载BIN数据文件
- IP2Location LITE BIN数据(免费):https://lite.ip2location.com
- IP2Location商业BIN数据(全面):https://www.ip2location.com
对于IP2Location API密钥,您可以在IP2Location Web Service注册以获取一个免费API密钥。
IPv4 BIN与IPv6 BIN
如果您只需要查询IPv4地址,请使用IPv4 BIN文件。如果您需要查询IPv4和IPv6地址,请使用IPv6 BIN文件。