使用IP地址追踪访客,有更好的方法吗?(使用Flask微框架)

2 投票
2 回答
1758 浏览
提问于 2025-04-16 08:42

我打算使用Flask这个微框架(它是基于Werkzeug的,使用的是Python 2.7或2.6)来制作一个游戏网站。

我想让用户能够对游戏进行投票(简单的1到5颗星),同时还想跟踪每个游戏页面的独立访问次数,这样我就可以根据游戏的评分或受欢迎程度动态排序游戏链接。

目前我计划使用用户的远程地址(通过这个属性:http://werkzeug.pocoo.org/documentation/dev/wrappers.html#werkzeug.BaseRequest.remote_addr)来判断用户是否独特,方法是存储所有为某个游戏投票或访问过的IP地址,这样他们就不能重复投票,并且每个访问只记录一次。

关于投票:用户不需要登录这一点很重要。


这样做是否合适?有什么优缺点?

或者你能想到更好的解决方案吗?这个框架里有没有你知道的处理这些任务的方法?


非常感谢你的帮助,我非常感激:-)

乔纳森

2 个回答

1

生成一个GUID,并把它放进evercookie里。

5

我觉得用IP地址来限制投票并不是个好主意。

  1. 很多学校、校园、酒店、宿舍和办公室都使用一个或一小部分的IP地址范围。这就意味着在这些地方,只有一个人可以投票。比如说,如果一个宿舍楼里有3000个学生,他们都通过同一个IP地址上网,那么只有一个幸运的人能投票。
  2. IP地址是会变化的。任何想要多投几次票的人,通常可以重启他们的设备,或者进入路由器的管理界面,申请一个不同的IP地址。

如果不需要登录的话,我建议使用cookies。没错,cookies可以被清除,但如果你真的需要更持久的存储方式,还有其他更永久的办法。不过在很多情况下,我觉得设置一个有效期为10年的普通cookie就足够了。

撰写回答