Explorar o código

Improved ISP detection code

adolfintel %!s(int64=7) %!d(string=hai) anos
pai
achega
344d0cd396
Modificáronse 1 ficheiros con 12 adicións e 7 borrados
  1. 12 7
      Test backends/getIP.php

+ 12 - 7
Test backends/getIP.php

@@ -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);