Django的IPAddressField有哪些可能的用途?

时间:2013-06-09 00:55:40

标签: django django-models ip-address django-comments

将一个用户的IP地址存储在模型实例中的常见原因或示例是什么?我无法想到任何问题。

通过Django现已弃用的Comments framework,我看到他们将评论者的IP地址存储在Comment model内的GenericIPAddressField中。为什么?存储它有什么意义?

3 个答案:

答案 0 :(得分:2)

我想到了几个用途:

  1. 禁止不合规用户的IP地址。
  2. 将令牌与已支付某项服务的用户的IP地址相关联
  3. 某些网络应用程序的管理器界面
  4. (更一般)任何网络相关的应用程序,哪个接口是用Django编写的
  5. 也许是一些在线游戏。
  6. 在一天结束时,IPAddressField只是另一个CharField有一些限制,有人花时间编写它,因为他/她需要它,为什么不把它包含在Django的保留曲目中? :)

    编辑:我知道所有关于通过代理等来规避这种IP限制,但是,对于不那么精明的用户来说这可能是有效的,对于更精明的用户来说,这可能是一些痛苦。限制:)

答案 1 :(得分:1)

对于评论应用或类似的应用,了解垃圾邮件或滥用原因的评论员的IP地址通常很有用。您可能还想通过在不同的用户名下发布但使用相同的IP地址来了解某人是否伪装成其他人。或者,如果他们发布了滥用或非法的内容,您可以禁止他们的IP地址。它有时用于检测垃圾邮件。如果您正在运营一个迎合世界某个地区的小团体的论坛,那么收到来自世界另一端的评论可能会令人惊讶。它们也可以用于统计和记录目的。

答案 2 :(得分:1)

我在我的一个模型中使用此字段,所以让我在这里分享用例。 有一个Web API,曾经可以在网上免费获得。但现在,我们想在其中添加身份验证层;而不改变我们的最终用户集成它的方式。 添加新的身份验证参数将需要在客户端进行更改,因此这不是一个选项。

最后,基于IP的身份验证似乎是最可行的解决方案。为此,我需要存储客户端的IP地址,并在请求来自已注册的IP列表时进行身份验证。