A component for this might be possible

June Taylor Posted in Component Development 4 months ago

Should I assume that the operator of a website is capable of tracking your every action at that site. I had a Forum once (SMF) that logged the IP address from which an account was created and most recently logged in from. This log is often retained for a substantial time, often indefinitely. In addition, most web server applications log all accesses in a master webserver log, which invariably includes the IP address, and a competent admin can correlate any activity on the website (even just viewing) with an IP address by examining that logfile. My question is ; I want to be able to do this with OSSN. Your thoughts on this may put me in the right direction to do this

Replies
us Bansh33 - Replied 4 months ago

if you really want full details, look at your Apache (webserver's) accesslog and errorlog files. That contains the ip performing the request, timestamp, user-agent, request string, and more. If you're using the provided VM image for OSSN or a standard Linux installation, the accesslog file will be /var/log/apache2 and errorlog will be in your OSSN root, as long as you've enabled error logging via the ossn admin interface.

you could of course write a component to do some more tracking and then nicely display everything if you want. personally I'm with Z-Man on this though - I hate that kind of tracking.

German Arsalan Shah Replied 4 months ago

Please don't edit the core files, you may write your own component below is just a example that :

<?php
function log_init(){
        ossn_register_callback('action', 'load', 'log_actions');
        ossn_add_hook('page', 'load', 'page_log');
}
function log_main(){
        $url = ...
        $ip  = ...
}
function log_actions(){
        log_main();
}
function page_log($hook, $type, $return, $params){
        log_main();
        return $return;
}
ossn_register_callback('ossn', 'init', 'log_init');
us June Taylor Replied 4 months ago

Just a follow up. I got it to work by adding some code to the index.php. The log file will be created in the same directory.

   if (!empty($_SERVER['HTTP_CLIENT_IP']))   //check ip from share internet
    {
      $ipaddress = $_SERVER['HTTP_CLIENT_IP']."

";
}
elseif (!empty($SERVER['HTTPXFORWARDEDFOR'])) //to check if ip is pass from proxy
{
$ipaddress = $SERVER['HTTPXFORWARDEDFOR']."
";
}
else
{
$ipaddress = $SERVER['REMOTEADDR']."
";
}

$file = 'log.txt';  //this is the file to which the IP address will be written; name it your way.

$fp = fopen($file, 'a');

fwrite($fp, $ipaddress);

fclose($fp);
German ~Z~ Man Replied 4 months ago

Personally, I hate that kind of tracking - but technically there would be no reason not to implement it.