Извеждане на IP и Хост на хората намиращи се на страницата

C++ JAVA
Правила на форума
Моля, маркирайте отговора на потребитeля, който най-много ви е помогнал за решаването на проблема/въпроса Ви!
Повече за системата за оценяване може да прочетете тук: viewtopic.php?f=28&t=130265
Аватар

Topic author
VoodooNet
Турист
Турист
Reactions: 0
Мнения: 89
Регистриран на: Нед Фев 14, 2010 1:27 pm
11
Местоположение: Плевен
Обратна връзка:

Извеждане на IP и Хост на хората намиращи се на страницата

Мнение от VoodooNet »

Трябва ми скрипт които да извежда IP и Хост на хората намиращи се на страницата в момента.

Например:

На линия: 192.194.445.667 с хост btc-net.com
Аватар

eddyy93
Почетен член
Почетен член
Reactions: 0
Мнения: 1421
Регистриран на: Пон Юни 06, 2011 10:32 am
10

и

Мнение от eddyy93 »

[php]<?php

$ip=$_SERVER['REMOTE_ADDR'];
$hostname=gethostname();

echo "Вашето IP е:".$ip."<br>";
echo "Вашето име на хост:".$hostname."<br>";


?>[/php]
Аватар

Topic author
VoodooNet
Турист
Турист
Reactions: 0
Мнения: 89
Регистриран на: Нед Фев 14, 2010 1:27 pm
11
Местоположение: Плевен
Обратна връзка:

Мнение от VoodooNet »

Не точно. Аз искам да виждам тези които разглеждат в момента сайта.
Ще го ползвам като админ мониторинг...
Аватар

eddyy93
Почетен член
Почетен член
Reactions: 0
Мнения: 1421
Регистриран на: Пон Юни 06, 2011 10:32 am
10

а

Мнение от eddyy93 »

Ами тука вече може да го направиш като всеки влязъл в сайта да си създаде сессия. И докато тази сесия е валидна да ти записва на потребитела ИП, ХОСТ в един .txt файл или база данни и обратното ако е невалидно да трие записите на тези сесси. И ти вече ще си ги вадиш резултатите при твоя админ панел.


Даже да си създаде coockie за 5мин. е по-добър вариянт от сессия. Така на всеки 5 мин записите ще се трият с бисквитката и нали ако той си е акитвен още, ще зареди нова бисквитка.

Това е според мен.
Последно промяна от eddyy93 на Нед Яну 01, 2012 5:26 pm, променено общо 1 път.
Аватар

Topic author
VoodooNet
Турист
Турист
Reactions: 0
Мнения: 89
Регистриран на: Нед Фев 14, 2010 1:27 pm
11
Местоположение: Плевен
Обратна връзка:

Мнение от VoodooNet »

Именно за нещо такова става дума. А код дали има кои да драсне на бързо.
Аватар

eddyy93
Почетен член
Почетен член
Reactions: 0
Мнения: 1421
Регистриран на: Пон Юни 06, 2011 10:32 am
10

щ

Мнение от eddyy93 »

Ще пробвам да го напиша малко по-късно, че имам малко домакинска работа в момента. Предполагам не е кой знае колко сложно.
Аватар

eddyy93
Почетен член
Почетен член
Reactions: 0
Мнения: 1421
Регистриран на: Пон Юни 06, 2011 10:32 am
10

м

Мнение от eddyy93 »

Мисля, че съм готов. Но ще се радвам да бъде проверено също и от другите хора и да чуя тяхното мнение и ще го направя урок по-късно.



Също така може да си сложиш един регулярен израз за ИП-то като се качва в DB.
И на hostname htmlspecialchars i addslashes.




Първо:

Направи си база данни с име " cu "
Направи си таблиза с име " cu "
Направи си 3 полета : ip, hostname, vreme

Направи ip varchar(200)
Направи hostname varchar(200)
Направи vreme varchar(200)

Времето е unixtimestamp порпинцип такаче може и (int) да си ги направиш-няма проблеми.

Ето го и кода.

ПОПЪЛНИ СИ mysql_connect - с твойте връзки.

[php]<?php
session_start();
include 'functions.php';
mysql_connect('localhost', 'ИМЕТО ЗА ВРЪЗКА С БАЗАТА ДАННИ', 'ПАРОЛАТА');
mysql_select_db('cu');


$time=time();

if($_COOKIE['sesscheck']!=true) {








$duration = time() + (60 * 5); // 5 min, може да си го направиш по твой избор колкото искаш
$cc=setcookie('sesscheck', 'on', $duration, '/');


if($cc) {
$_COOKIE['sesscheck']=true;

$ip=$_SERVER['REMOTE_ADDR'];
$hostname=gethostname();


mysql_query("INSERT INTO `cu`(`ip`,`hostname`,`vreme`) VALUES ('$ip','$hostname', '$time')");




}

}

$time_check=$time-300; //Трябва да е равно на времето зададено на cookie то
mysql_query("DELETE FROM `cu` WHERE vreme<$time_check");


?>
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
</head>
<body>
<?php
//Да приемем, че това е админ панела.

$online_row=mysql_query("SELECT * FROM `cu` ");

$online_obshto=mysql_num_rows($online_row);
echo "В момента има: ".$online_obshto." гост в сайта<br><br><br>";

while($online=mysql_fetch_assoc($online_row)){

echo "<table border='1'>";
echo "<tr><td>".$online['ip']."</td>";
echo "<td>".$online['hostname']."</td>";
echo "</tr></table>";

}
?>
</body>
</html>[/php]
Аватар

Topic author
VoodooNet
Турист
Турист
Reactions: 0
Мнения: 89
Регистриран на: Нед Фев 14, 2010 1:27 pm
11
Местоположение: Плевен
Обратна връзка:

Мнение от VoodooNet »

include 'functions.php'; <-- това го махнах тъй като няма такъв файл.

след теста ми изкара следната грешка:

Код за потвърждение: Избери целия код

Fatal error&#58; Call to undefined function gethostname&#40;&#41; in C&#58;\AppServ\www\users.php on line 26
Аватар

eddyy93
Почетен член
Почетен член
Reactions: 0
Мнения: 1421
Регистриран на: Пон Юни 06, 2011 10:32 am
10

п

Мнение от eddyy93 »

Работи за php (PHP >= 5.3.0). Имаш старичка версия. Ъпдейтни си php.


Ето за тази функция повече неща. http://www.php.net/manual/en/function.gethostname.php
В този линк има описани други подобни на тази функции, ползвай тази кояти ти върши работа.


Да include не ти трябва, забравил съм го.
Аватар

Topic author
VoodooNet
Турист
Турист
Reactions: 0
Мнения: 89
Регистриран на: Нед Фев 14, 2010 1:27 pm
11
Местоположение: Плевен
Обратна връзка:

Мнение от VoodooNet »

Няма ли алтернатива работеща на това: Apache/2.2.8 (Win32) mod_ssl/2.2.8 OpenSSL/0.9.8g PHP/5.2.6 Server at 127.0.0.1 Port 80
Публикувай отговор