TSHKComputing.com

Figure it out. forward.php  (Updated 04/25/2023)

Note:  Make sure to set your correct default timezone in your php.ini file.  Otherwise the time defaults to GMT.  I designed it for IIS, but a few modifications should make it work on apache.  To see this code in use go to http://98.168.104.21/

 

<?php

 

function RetrieveUserIP()

{

if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))

{

$address=$_SERVER['HTTP_X_FORWARDED_FOR'];

}

elseif(!empty($_SERVER['HTTP_CLIENT_IP']))

{

$address=$_SERVER['HTTP_CLIENT_IP'];

}

else

{

$address=$_SERVER['REMOTE_ADDR'];

}

return $address;

}

 

function doesExist($checkurl): bool

{ // Use get_headers() function

$headers = @get_headers($checkurl);

// Use condition to check the existence of URL

if(!$headers || strpos( $headers[0], '200'))

{

return true;

}

else

{

return false;

}

 

}

$ip = RetrieveUserIP();

$query = @unserialize(file_get_contents('http://ip-api.com/php/'.$ip));

if($query && $query['status'] == 'success')

{

$city = $query['city'];

$state = $query['region'];

$country = $query['country'];

$coords = $query['lat'] . ', ' . $query['lon'];

$proxy = $query['proxy'];

}

if (empty($city)) {

$city = "NA";

}

 

if (empty($state)) {

$state = "NA";

}

if (empty($country)) {

$country = "NA";

}

if (empty($coords)) {

$coords = "NA" . "," . "NA";

}

if (empty($proxy)) {

$proxy = "NA";

}

 

 

 

 

 

$today = (date('mdY'));

$a = "c:\\inetpub\\logs\\ips\\" . $today . ".log";

 

$myfile = fopen($a, "a") or die("Unable to open file!");

$date = date("m-d-Y");

 

$time = date("H:i:s");

 

$txt = $date ."," . $time . "," . $ip . "," . $city . "," . $state . "," .$country . "," . $coords . "," . $proxy . "\r\n";

fwrite($myfile, $txt );

fclose($myfile);

 

$url = "https://" .retrieveuserip();

$url1 = "http://" .retrieveuserip();

 

if (doesExist($url)==true && doesExist($url1)==false)

{

if (!headers_sent())

 

header('Location: https://' .retrieveuserip());

exit();

}

elseif (doesExist($url1)==true && doesExist($url)==false)

{

if(!headers_sent())

{

header('Location: http://' .retrieveuserip());

exit();

}

}

elseif (doesExist($url1)==true && doesExist($url)==true)

{

if(!headers_sent())

{

header('Location: https://' .retrieveuserip());

exit();

}

}

else

 

if(!headers_sent())

{

header ('Location: http://www.google.com');

exit();

}

 

 

?>

 

 

Here's a sample Log File.  I changed the ip addresses for privacy reasons.  If I was behind a vpn or proxy, the final NA would be the Proxy, VPN or Tor exit address.

04-21-2023,14:42:19,192.168.231.2,NA,NA,NA,NA,NA,NA
04-21-2023,14:43:15,0.0.0.0,San Diego,CA,United States,32.7449, -117.165,NA
04-21-2023,14:45:49,0.0.0.0,San Diego,CA,United States,32.7449, -117.165,NA
04-21-2023,14:46:46,0.0.0.0,San Diego,CA,United States,32.7449, -117.165,NA
04-21-2023,14:47:04,192.168.231.2,NA,NA,NA,NA,NA,NA
04-21-2023,14:48:01,0.0.0.0,San Diego,CA,United States,32.7449, -117.165,NA
04-21-2023,14:52:17,0.0.0.0,San Diego,CA,United States,32.6917, -117.1151,NA
04-21-2023,14:52:19,0.0.0.0,San Diego,CA,United States,32.6917, -117.1151,NA
04-21-2023,14:57:25,192.168.231.2,NA,NA,NA,NA,NA,NA
04-21-2023,15:08:10,0.0.0.0,San Diego,CA,United States,32.7449, -117.165,NA
04-21-2023,15:09:06,192.168.231.2,NA,NA,NA,NA,NA,NA