<?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"]))); ?>