Перейти к содержимому

Сервис обмена электронных валют

Выбрать шаблон и создать сайт

Проверка одинаковых IP у разных юзеров

#1 alex19rus

alex19rus
  • Пользователь
  • 270 сообщений
  • Репутация: 5
0

Отправлено 29 Июнь 2011 - 19:13

И снова я со своими вопросами :D Привет все!

Столкнулся с такой проблемой...
Имеем бд в которой есть таблица users, в ней хранятся данные: id юзера (id), его последний IP (ip), логин (login) и др...
Хочу сделать простую проверку на мульти аккаунты. Сам в php и sql шарю только если есть пример куда смотреть :D
Как сделать такую штуку, чтобы при совпадении ip адресов у разных пользователей выводился этот ip и логины, которые входили с этим ip?
Я думаю как то так:
Если у первого и второго (и т.д.) юзеров IP одинаковые, то выводим их логины (2,3 и больше, кто на что гаразд) и id - как это будет выглядеть в коде?

Если что
IP - ".$row[ip]."
id - ".$row[id]."
логин - ".$row[login]."

Помогите плиз!

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 30 Июнь 2011 - 09:13

<?php
$ip = $_SERVER['REMOTE_ADDR'];

$res = mysql_query("SELECT * FROM `users` WHERE `ip`='{$ip}'");
if(mysql_num_rows($res) > 0){
echo "Под IP {$ip} входили пользователи со следующими логинами:
<ul>";
while($row = mysql_fetch_assoc($res)){
echo "<li>{$row['id']} - {$row['login']}</li>";
}
echo '</ul>';
}else{
// код, если совпадений IP нет
}
?>

  • 0


#3 alex19rus

alex19rus
    Topic Starter
  • Пользователь
  • 270 сообщений
  • Репутация: 5

Отправлено 01 Июль 2011 - 11:01

matroskin8, а почему он проверяет только мой IP?

Под IP 85.26.231.113 входили пользователи со следующими логинами:

2 - alex19rus

А надо, чтобы он все IP проверял на схожесть, можно так сделать?
  • 0

#4 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 01 Июль 2011 - 11:31

Значит под IP 85.26.231.113 входил только пользователь с логином alex19rus.
Хмм... Я думал, что задача заключается в следующем:
если я захожу с определенным IP на сайт, то проверяется был ли кто-то уже ранее с таким IP на этом сайте. Если был, то будут выведены все логины, которые входили под этим IP нас сайт.
Т.е. нужно вывести просто список IP и рядом логины, входившие под этими IP. При этом, если под одним IP зарегистрированы разные логины, то необходимо IP вывести 1 раз и все логины с ним. Ок, чуть позже выложу решение... если никто не опередит меня :rolleyes:
  • 0


#5 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 01 Июль 2011 - 13:12

Что-то я думал, что будет не так сложно :rolleyes:
В таком виде подойдет?
$res = mysql_query("SELECT * FROM `users` AS T1 WHERE (SELECT COUNT(`ip`) FROM `users` WHERE `ip` = T1.`ip`) > 1 ORDER BY `ip`");

while($row = mysql_fetch_assoc($res)){
echo "{$row['ip']} - {$row['login']} <br />";
}

  • 0


#6 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 01 Июль 2011 - 13:44

И еще одно решение вдогонку :rolleyes:
$res = mysql_query("SELECT `ip`,COUNT(*) FROM `users` GROUP BY `ip` HAVING COUNT(*) > 1;");

while($row = mysql_fetch_assoc($res)){
$res_login = mysql_query("SELECT `id`, `login` FROM `users` WHERE `ip`='{$row['ip']}'");

echo "Под IP <strong>{$row['ip']}</strong> заходили пользователи с логинами <ul>";
while($row_login = mysql_fetch_assoc($res_login)){
echo "<li>{$row_login['id']} - {$row_login['login']}</li>";
}
echo '</ul>';
}

  • 0


#7 alex19rus

alex19rus
    Topic Starter
  • Пользователь
  • 270 сообщений
  • Репутация: 5

Отправлено 01 Июль 2011 - 14:49

С П А С И Б О ! ! !


  • 0

#8 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 01 Июль 2011 - 16:23

Пожалуйста :rolleyes:
  • 0


robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru