首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于查找共享IP地址的用户的数据库查询

用于查找共享IP地址的用户的数据库查询
EN

Stack Overflow用户
提问于 2012-06-15 03:55:50
回答 3查看 366关注 0票数 0

使用MySQL,我有一个简单的表,用来记录用户登录时使用的IP地址:

代码语言:javascript
复制
TableIPLog
------------
ColumnID (primary key)
ColumnUserID (the ID of the user)
ColumnIP (the IP address the user used to login)

我想要一个查询,将找到已共享IP地址的用户!

为了清楚起见,我希望查询只显示IP地址已被超过1个成员使用的行。

我被难住了。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-06-15 03:58:42

你可以走这条路,这是针对SQL-Server的,但我确信有一个mysql等价物:

代码语言:javascript
复制
select ColumnIP, count(*)
from TableIPLog
group by ColumnIP
having count(*) > 1

然后,您可以使用这些ip来查找与其关联的用户名...

编辑:考虑到这一点,它可能不会工作,这取决于您的日志实现,但它不会花太多的时间让它工作……也许使用exists子句...

票数 1
EN

Stack Overflow用户

发布于 2012-06-15 10:14:36

代码语言:javascript
复制
SELECT a.id,a.userid,a.ip 
FROM ip_log a inner join ip_log b 
ON a.userid<>b.userid and a.ip=b.ip;

这将列出具有相同ip但不同用户ip的所有用户ip和ip。

票数 1
EN

Stack Overflow用户

发布于 2012-06-15 04:03:56

我建议您这样存储IP(请查看this link):

代码语言:javascript
复制
mysql> SELECT INET_ATON('192.168.0.10') AS ipn;
+------------+
| ipn        |
+------------+
| 3232235530 |
+------------+

mysql> SELECT INET_NTOA(3232235530) AS ipa;
+--------------+
| ipa          |
+--------------+
| 192.168.0.10 |
+--------------+

要进行搜索应该是这样的:

代码语言:javascript
复制
select INET_NTOA(columnIp), count(*) from tableIPLOG group by columnIp having count(*)>1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11040423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档