Improved ISP detection code

This commit is contained in:
adolfintel 2019-01-11 11:59:55 +01:00
parent c0f99fb89b
commit 344d0cd396

View file

@ -15,7 +15,7 @@ if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['X-Real-IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$ip = preg_replace("/,.*/", "", $ip); # hosts are comma-separated, client is first
$ip = preg_replace("/,.*/", "", $ip); # hosts are comma-separated, client is first
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
@ -55,22 +55,27 @@ if (isset($_GET["isp"])) {
$json = file_get_contents("https://ipinfo.io/" . $ip . "/json");
$details = json_decode($json, true);
$rawIspInfo=$details;
if (array_key_exists("org", $details))
if (array_key_exists("org", $details)){
$isp .= $details["org"];
else
$isp=preg_replace("/AS\d{1,}\s/","",$isp); //Remove AS##### from ISP name, if present
}else{
$isp .= "Unknown ISP";
if (array_key_exists("country", $details))
$isp .= ", " . $details["country"];
}
if (array_key_exists("country", $details)){
$isp .= ", " . $details["country"];
}
$clientLoc = NULL;
$serverLoc = NULL;
if (array_key_exists("loc", $details))
if (array_key_exists("loc", $details)){
$clientLoc = $details["loc"];
}
if (isset($_GET["distance"])) {
if ($clientLoc) {
$json = file_get_contents("https://ipinfo.io/json");
$details = json_decode($json, true);
if (array_key_exists("loc", $details))
if (array_key_exists("loc", $details)){
$serverLoc = $details["loc"];
}
if ($serverLoc) {
try {
$clientLoc = explode(",", $clientLoc);