Я не могу дать вам ответ, как реализовать это с программным обеспечением форума, которое вы используете. Я проверил сайт, и у них есть форум для модов и плагинов, так что вы можете спросить там, должен ли это быть плагин (если кто-то здесь, конечно, не знает его).
Чтобы узнать IP-адреса всех пользователей, которые в данный момент вошли на ваш сайт, вы можете сделать что-то вроде этого (мы определяем, что вы вошли в систему как «имеет сеанс»):
// put in your bootstrap after you defined getRealIpAddr()
if(session_id() === '') {
session_start();
}
$_SESSION['ip'] = getRealIpAddr();
Затем добавьте в свою библиотеку класс SessionReader, например,
class SessionReader
{
// serializes session data without destroying your own session
public function decode($filecontent){
// see http://de.php.net/manual/de/function.session-decode.php#69111
}
// just reads in the contents of a session file
public function readSessionData($file)
{
return file_get_contents(realpath("$session_save_path/$file"));
}
// returns all filenames in save path starting with 'sess'
public function getSessionFiles()
{
$path = realpath(session_save_path());
return glob($path . '/sess*');
}
// uses the above methods to build an array of all decoded sessions
public function getEveryonesSessionData()
{
$contents = array_filter($this->getSessionFiles(),
array($this, "readSessionData"));
return array_filter($contents, array($this, "decode"));
}
}
Чтобы использовать это, сделайте
$sessionReader = new SessionReader;
foreach( $sessionReader->getEveryonesSessionData() as $session) {
echo $session['IP'];
}
Отказ от ответственности: это просто доказательство концепции ака гадкий. Я не ожидаю, что это будет работать без корректировки. так что тебе тоже не следует. Но вы должны быть в состоянии сделать это отсюда.
SessionReader должен иметь возможность чтения всех файлов сеансов в сеансе session_save_path, указанном в PHP.ini или в другом месте вашего приложения. Предполагается, что файлы сеанса начинаются с sess и хранятся в файловой системе. При вызове getEveryonesSessionData () класс находит, считывает, декодирует и возвращает все файлы сеансов в массиве, поэтому вы можете обращаться к ним один за другим.
Чтобы запустить это с программным обеспечением форума, вы должны выяснить, как они определяют в настоящее время вошедших в систему пользователей, и если и как они используют сеансы.