Nhận Geo-IP Thông tin
yêu cầu một địa chỉ IP máy chủ (netip.de) để kiểm tra, trả về nơi một IP nằm (máy chủ, tiểu bang, quốc gia, thị trấn).
<?php
$ip='94.219.40.96';
print_r(geoCheckIP($ip));
//Array ([domain] => dslb-094-219-040-096.pools.arcor-ip.net [country] => DE - Germany [state] => Hessen [town] => Erzhausen)
//Get an array with geoip-infodata
function geoCheckIP($ip)
{
//check, if the provided ip is valid
if(!filter_var($ip, FILTER_VALIDATE_IP))
{
throw new InvalidArgumentException("IP is not valid");
}
//contact ip-server
[email protected]_get_contents('http://www.netip.de/search?query='.$ip);
if (empty($response))
{
throw new InvalidArgumentException("Error contacting Geo-IP-Server");
}
//Array containing all regex-patterns necessary to extract ip-geoinfo from page
$patterns=array();
$patterns["domain"] = '#Domain: (.*?) #i';
$patterns["country"] = '#Country: (.*?) #i';
$patterns["state"] = '#State/Region: (.*?)<br#i';
$patterns["town"] = '#City: (.*?)<br#i';
//Array where results will be stored
$ipInfo=array();
//check response from ipserver for above patterns
foreach ($patterns as $key => $pattern)
{
//store the result in array
$ipInfo[$key] = preg_match($pattern,$response,$value) && !empty($value[1]) ? $value[1] : 'not found';
}
return $ipInfo;
}
?>
Nomsayn?
Nếu bạn muốn có một cơ sở dữ liệu sử dụng lãnh đạo http://www.phpandstuff.com/articles/geoip-country-lookup-with-php
Nguồn
2011-10-14 11:38:33
thể trùng lặp: [? Những dịch vụ tồn tại mà địa nằm một người dựa trên IP] (http://stackoverflow.com/questions/464142/what-services-exist-that-geo-locates-a -person-based-on-ip) – hakre
có thể trùng lặp của [Nhận Quốc gia Địa chỉ IP bằng PHP] (http://stackoverflow.com/questions/3650006/get-country-of-ip-address-with-php) –
Thanh toán https://ipdata.co, một dịch vụ tôi đã tạo có 10 điểm cuối toàn cầu, mỗi người có thể xử lý> 800 triệu cuộc gọi hàng ngày. Nó siêu nhanh và có rất nhiều dữ liệu liên quan. – Jonathan