54 lines
2.2 KiB
PHP
54 lines
2.2 KiB
PHP
<?php
|
|
/***********************************************************************
|
|
* Script (c) Kubwa (https://kubwa.de)
|
|
*
|
|
* This script was release under BSD license.
|
|
* You are free to use, share or change this code as you wish. This
|
|
* header must be kept intact.
|
|
***********************************************************************/
|
|
|
|
error_reporting(0);
|
|
|
|
require_once("classes/Framework.MySql.Class.php");
|
|
require_once("classes/GridUserInfo.php");
|
|
require_once("classes/Http.php");
|
|
require_once("classes/Xml.php");
|
|
require_once("Config.php");
|
|
|
|
/*
|
|
This little script is looking up country, language and timezone for a ip address and caches it.
|
|
To have a minimum of dataprotection, we are hashing the ip addresses we are looking up.
|
|
*/
|
|
if (empty($_GET["ip"]) || !filter_var($_GET["ip"], FILTER_VALIDATE_IP))
|
|
{die("NOPE");}
|
|
|
|
$MySql = new MySql($GLOBALS["CONFIG"]["mysql"]["user"], $GLOBALS["CONFIG"]["mysql"]["pass"], $GLOBALS["CONFIG"]["mysql"]["db"], $GLOBALS["CONFIG"]["mysql"]["server"]);
|
|
|
|
$MySql->query("DELETE FROM ip_timezones WHERE unix < {0} OR (unix < {1} AND country = '')", array(time() - 86400 * 60, time() - 86400));
|
|
$Exists = $MySql->query("SELECT * FROM ip_timezones WHERE ip = md5({0}) LIMIT 1", array($_GET["ip"]))->fetch();
|
|
$TimeZone = "Europe/Berlin";
|
|
$Country = "DE";
|
|
if (empty($Exists["ip"]))
|
|
{
|
|
//We can also use another service to trace the ip, if you wish so, change this code
|
|
$TraceRequest = json_decode(HttpRequest("http://ip-api.com/json/".$_GET["ip"], "", 3), true);
|
|
if ($TraceRequest["status"] == "success")
|
|
{
|
|
$TimeZone = $TraceRequest["timezone"];
|
|
$Country = $TraceRequest["countryCode"];
|
|
}
|
|
$MySql->query("INSERT INTO ip_timezones (ip, timezone, country, unix)VALUES(md5({0}), {1}, {2}, {3})", array($_GET["ip"], $TimeZone, $Country, time()));
|
|
}
|
|
else
|
|
{
|
|
$TimeZone = $Exists["timezone"];
|
|
$Country = $Exists["country"];
|
|
}
|
|
|
|
$Language = "DE";
|
|
$Exists = $MySql->query("SELECT * FROM countries_lang WHERE country = {0} LIMIT 1", array(strtolower($Country)))->fetch();
|
|
if (!empty($Exists["lang"]))
|
|
{$Language = strtoupper($Exists["lang"]);}
|
|
|
|
die(implode(",", array("OK", $Country, $TimeZone, $Language, $_GET["payload"])));
|
|
?>
|