将一个用户的IP地址存储在模型实例中的常见原因或示例是什么?我无法想到任何问题。
通过Django现已弃用的Comments framework,我看到他们将评论者的IP地址存储在Comment
model内的GenericIPAddressField
中。为什么?存储它有什么意义?
答案 0 :(得分:2)
我想到了几个用途:
在一天结束时,IPAddressField
只是另一个CharField
有一些限制,有人花时间编写它,因为他/她需要它,为什么不把它包含在Django的保留曲目中? :)
编辑:我知道所有关于通过代理等来规避这种IP限制,但是,对于不那么精明的用户来说这可能是有效的,对于更精明的用户来说,这可能是一些痛苦。限制:)
答案 1 :(得分:1)
对于评论应用或类似的应用,了解垃圾邮件或滥用原因的评论员的IP地址通常很有用。您可能还想通过在不同的用户名下发布但使用相同的IP地址来了解某人是否伪装成其他人。或者,如果他们发布了滥用或非法的内容,您可以禁止他们的IP地址。它有时用于检测垃圾邮件。如果您正在运营一个迎合世界某个地区的小团体的论坛,那么收到来自世界另一端的评论可能会令人惊讶。它们也可以用于统计和记录目的。
答案 2 :(得分:1)
我在我的一个模型中使用此字段,所以让我在这里分享用例。 有一个Web API,曾经可以在网上免费获得。但现在,我们想在其中添加身份验证层;而不改变我们的最终用户集成它的方式。 添加新的身份验证参数将需要在客户端进行更改,因此这不是一个选项。
最后,基于IP的身份验证似乎是最可行的解决方案。为此,我需要存储客户端的IP地址,并在请求来自已注册的IP列表时进行身份验证。