-
Notifications
You must be signed in to change notification settings - Fork 68
/
Copy pathexample.php
141 lines (108 loc) · 4.63 KB
/
example.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?php
require 'vendor/autoload.php';
/*
Cache whole database into system memory and share among other scripts & websites
WARNING: Please make sure your system have sufficient RAM to enable this feature
*/
//$db = new \IP2Location\Database('./data/IP2LOCATION-LITE-DB1.BIN', \IP2Location\Database::SHARED_MEMORY);
/*
Cache the database into memory to accelerate lookup speed
WARNING: Please make sure your system have sufficient RAM to enable this feature
*/
// $db = new \IP2Location\Database('./data/IP2LOCATION-LITE-DB1.BIN', \IP2Location\Database::MEMORY_CACHE);
// Default file I/O lookup
$db = new \IP2Location\Database('./data/IP2LOCATION-LITE-DB1.BIN', \IP2Location\Database::FILE_IO);
$records = $db->lookup('8.8.8.8', \IP2Location\Database::ALL);
echo $db->getDate();
echo '<pre>';
echo 'IP Number : ' . $records['ipNumber'] . "\n";
echo 'IP Version : ' . $records['ipVersion'] . "\n";
echo 'IP Address : ' . $records['ipAddress'] . "\n";
echo 'Country Code : ' . $records['countryCode'] . "\n";
echo 'Country Name : ' . $records['countryName'] . "\n";
echo 'Region Name : ' . $records['regionName'] . "\n";
echo 'City Name : ' . $records['cityName'] . "\n";
echo 'Latitude : ' . $records['latitude'] . "\n";
echo 'Longitude : ' . $records['longitude'] . "\n";
echo 'Area Code : ' . $records['areaCode'] . "\n";
echo 'IDD Code : ' . $records['iddCode'] . "\n";
echo 'Weather Station Code : ' . $records['weatherStationCode'] . "\n";
echo 'Weather Station Name : ' . $records['weatherStationName'] . "\n";
echo 'MCC : ' . $records['mcc'] . "\n";
echo 'MNC : ' . $records['mnc'] . "\n";
echo 'Mobile Carrier : ' . $records['mobileCarrierName'] . "\n";
echo 'Usage Type : ' . $records['usageType'] . "\n";
echo 'Elevation : ' . $records['elevation'] . "\n";
echo 'Net Speed : ' . $records['netSpeed'] . "\n";
echo 'Time Zone : ' . $records['timeZone'] . "\n";
echo 'ZIP Code : ' . $records['zipCode'] . "\n";
echo 'Domain Name : ' . $records['domainName'] . "\n";
echo 'ISP Name : ' . $records['isp'] . "\n";
echo 'Address Type : ' . $records['addressType'] . "\n";
echo 'Category : ' . $records['category'] . "\n";
echo 'District : ' . $records['district'] . "\n";
echo 'ASN : ' . $records['asn'] . "\n";
echo 'AS : ' . $records['as'] . "\n";
echo '</pre>';
echo '<pre>
CIDR: ' . implode(', ', $db->getCidr('8.8.8.8')) . '
</pre>';
// Web Service
/*$ws = new \IP2Location\WebService('YOUR_API_KEY', 'WS25', true);
$records = $ws->lookup('8.8.8.8', [
'continent', 'country', 'region', 'city', 'geotargeting', 'country_groupings', 'time_zone_info',
], 'en');
echo '<pre>';
print_r($records);
echo 'Credit Remaining: ' . $ws->getCredit() . "\n";
echo '</pre>';*/
$ipTools = new \IP2Location\IpTools();
// Validate IPv4 address
var_dump($ipTools->isIpv4('8.8.8.8'));
echo '<br>';
// Validate IPv6 address
var_dump($ipTools->isIpv6('2001:4860:4860::8888'));
echo '<br>';
// Convert IPv4 into decimal
echo $ipTools->ipv4ToDecimal('8.8.8.8');
echo '<br>';
// Convert IPv6 into decimal
echo $ipTools->ipv6ToDecimal('2001:4860:4860::8888');
echo '<br>';
// Convert decimal into IPv4 address
echo $ipTools->decimalToIpv4(134744072);
// Convert IPv4 range into CIDR
echo '<pre>';
print_r($ipTools->ipv4ToCidr('8.0.0.0', '8.255.255.255'));
echo '</pre>';
// Convert CIDR to IPv4 range
echo '<pre>';
print_r($ipTools->cidrToIpv4('8.0.0.0/8'));
echo '</pre>';
// Convert CIDR into IPv6 range
echo '<pre>';
print_r($ipTools->cidrToIpv6('2002::1234:abcd:ffff:c0a8:101/64'));
echo '</pre>';
// Convert IPv6 range into CIDR
echo '<pre>';
print_r($ipTools->ipv6ToCidr('2002:0000:0000:1234:abcd:ffff:c0a8:0000', '2002:0000:0000:1234:ffff:ffff:ffff:ffff'));
echo '</pre>';
// Compress IPv6
echo '<pre>';
print_r($ipTools->compressIpv6('2002:0000:0000:1234:FFFF:FFFF:FFFF:FFFF'));
echo '</pre>';
// Expand IPv6
echo '<pre>';
print_r($ipTools->expandIpv6('2002::1234:FFFF:FFFF:FFFF:FFFF'));
echo '</pre>';
echo '<br>';
// Convert decimal into IPv6 address
echo $ipTools->decimalToIpv6('42541956123769884636017138956568135816');
// List country information for US
$country = new \IP2Location\Country('./data/IP2LOCATION-COUNTRY-INFORMATION-BASIC.CSV');
echo '<pre>';
print_r($country->getCountryInfo('US'));
echo '</pre>';
// Get region code by country code and region
$region = new \IP2Location\Region('./data/IP2LOCATION-ISO3166-2.CSV');
echo $region->getRegionCode('US', 'California');