我想将用户的IP地址保存到我的数据库中,以防出现任何法律问题,我们需要找出执行了哪些操作的人员。因为我非常怀疑我曾经实际上需要使用这些数据(好吧,可能用于计算唯一命中或其他东西)你认为我可以将REMOTE_ADDR
转储到字段中吗?如果是这样,该字段的长度应该是多少? 39个字符应该适合IPv6地址,不是吗?我不知道我是否会得到任何这些,但以防万一...
答案 0 :(得分:3)
如果您正好使用Postgres,则会有特定的data types for network addresses。
答案 1 :(得分:2)
在SQL Server中,我们使用VARBINARY [16]作为IPv4(4字节)和IPv6(16字节)的IP。
但在您的情况下,如果只是偶尔进行人工审核而不是机器处理,只需存储字符串即可。 (是的,39个字符将是最大值。)
答案 2 :(得分:0)
存储一些完整且明确的数据表示。当您需要查询数据时,以及当您弄清楚所需数据的查询类型时,就是当您弄清楚如何转换数据以便您可以有效地查询数据时。
如果您要存储用户在任何给定用户会话中首次访问的IP地址,您可以考虑对IP地址执行反向DNS查找。这将产生有关用户ISP的信息。如果出现法律问题,现在您可以获得更多信息。但是因为这些查找很昂贵(就时间而言),您可以将其作为后台任务执行,并且可能只需要执行初始命中,而不是在任何给定用户会话中来自同一IP地址的后续命中。
答案 3 :(得分:0)