ip2location/ip2location-laravel

查询访问者IP信息,例如国家、地区、城市、坐标、邮编、时区、ISP、域名、连接类型、区号、天气、MCC、MNC、手机品牌名称、海拔和用途类型。

1.3.1 2023-11-30 06:22 UTC

This package is auto-updated.

Last update: 2024-09-03 09:52:34 UTC


README

Latest Stable Version Total Downloads

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数据库

  1. 下载IP2Location BIN数据库
  2. 要使用IP2Location数据库,请在database目录中创建一个名为ip2location的文件夹。
  3. 解压缩并将BIN文件复制到database/ip2location/文件夹。
  4. 将BIN文件重命名为IP2LOCATION.BIN。
  5. 使用以下命令在Laravel中创建一个TestController
php artisan make:controller TestController
  1. 在任何文本编辑器中打开app/Http/Controllers/TestController.php
  2. 要将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>";
	}
}
  1. 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
  1. 输入URL /public/test 并运行。您应该看到IP地址8.8.8.8的信息。

Web服务

  1. 要使用IP2Location.io或IP2Location Web服务,在config目录中创建一个名为"site_vars.php"的新文件。
  2. 在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.
];
  1. 使用以下命令在Laravel中创建一个TestController
php artisan make:controller TestController
  1. 在任何文本编辑器中打开app/Http/Controllers/TestController.php
  2. 要将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>';
	}
}
  1. 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
  1. 输入URL /public/test 并运行。您应该看到IP地址8.8.8.8的信息。

IPTOOLS

  1. 使用以下命令在Laravel中创建一个TestController
php artisan make:controller TestController
  1. 在任何文本编辑器中打开app/Http/Controllers/TestController.php
  2. 要使用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>';
	}
}
  1. 将以下行添加到routes/web.php文件中。
Route::get('test', 'TestController@lookup');
  1. 输入URL /public/test 并运行。

依赖关系

此库需要IP2Location BIN数据文件或IP2Location API密钥才能运行。您可以在以下位置下载BIN数据文件

对于IP2Location API密钥,您可以在IP2Location Web Service注册以获取一个免费API密钥。

IPv4 BIN与IPv6 BIN

如果您只需要查询IPv4地址,请使用IPv4 BIN文件。如果您需要查询IPv4和IPv6地址,请使用IPv6 BIN文件。

支持

电子邮件:support@ip2location.com

网站:https://www.ip2location.com