首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找出用户的IP地址给出他们的UID?

找出用户的IP地址给出他们的UID?
EN

Drupal用户
提问于 2011-03-28 22:29:57
回答 4查看 7.9K关注 0票数 8

我运行Drupal 7网站与俄罗斯多人纸牌游戏,并不得不阻止一些非常恼人的球员每4-5天。

在Drupal之前,我使用的是phpBB 3。当这些人来自一个小城市/村庄时,我会把他们的IP网络添加到防火墙规则中,这样他们就不能用新的邮件地址重新注册了。这在我的情况下效果很好,我的问题不是关于这项政策的。

我的问题是,对于Drupal,我找不到用户id使用的最后一个IP地址。也就是说,施虐者是由其他用户向我报告的,我知道他的uid,但我在日志中找不到他的IP地址,因为:

  1. 我已经启用了syslog日志并在/var/log/messagess中看到了Drupal消息,但是很少有关于用户登录的消息,这可能是因为默认情况下会话很长,为了用户的舒适,我希望保持这种方式。
  2. 我还启用了“数据库日志”,但是不知道在哪里可以看到它(哪个数据库表)。
EN

回答 4

Drupal用户

回答已采纳

发布于 2011-03-29 09:08:28

如果启用了统计模块,则“访问日志”表包含所有访问者的IP。

代码语言:javascript
复制
SELECT hostname FROM accesslog WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

如果您没有启用统计数据,我建议您放弃它,即使这样做也是如此,因为启用它会导致严重的性能损失。

在这种情况下,您可以使用sessions表:

代码语言:javascript
复制
SELECT hostname FROM sessions WHERE uid = %UID_FOR_YOUR_USER% LIMIT 1

前者相对于后者的好处是,第一个将始终显示最新的主机名,而后者可能并不总是最新的。

票数 9
EN

Drupal用户

发布于 2011-03-28 22:44:44

据我所知,Drupal没有在用户配置文件中报告用户使用的IP。您可以创建一个自定义模块,验证用户使用的IP,并将其记录在您自己的数据库表中;然后,您可以将其显示在用户配置文件中,显示给拥有正确权限的用户(例如,具有管理用户权限的用户)。

您需要的函数是ip地址_地址(),您可以在钩子_用户_登录()的实现中使用它。实现钩子_用户_视图()之后,您可以使用正确的权限向用户显示这些信息。

票数 5
EN

Drupal用户

发布于 2011-03-28 23:08:26

如果使用的是数据库日志模块,则Drupal将这些信息存储在hostname列下的看门狗表中。您可以编写自定义查询以获取此信息,也可以使用视图监视模块 (目前仅为7.x提供一个开发版本,因此我不确定它在Drupal 7中的工作效果如何)将该表公开给视图。

票数 3
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/1521

复制
相关文章

相似问题

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