繁体   English   中英

如何在服务器上获取唯一的客户端标识符?

[英]How to get unique client identifer on server?

我正在制作一个EventLog,它将在我的网站上记录交易记录。 日志的详细信息将包括开始交易的公共IP以及本地IP地址(在公共IP下)。

我已经找到获取公共IP地址的方法,但是我无法找到进行交易的本地IP或机器IP。

使用相同连接的人员将完成大量条目。 即5或10台计算机连接到同一连接。

我需要找到进行交易的机器的机器IP(下一系统为192.168.0.1,下一个为192.168.0.2)以及计算机名称...

这可能吗

澄清一下,当客户端通过路由器连接时,您是否需要客户端的私有IP地址? 然后,没有办法做到这一点。

您这样做纯粹是为了区分不同的用户吗?

您可以使用Cookie之类的其他方法吗?

如果您的客户端从NAT或防火墙后面连接,则无法可靠地获取其地址或计算机名称。 如果您需要此类信息,则协议应将其作为请求的一部分进行请求,而客户端计算机应自愿提供它们。 没有办法验证所提供的信息(缺少部署受信任的密码基础结构,即您在客户端计算机本身中建立了强大的信任)。

可悲的是,答案是否定的。 现代的浏览器都不会在HTTP事务中显示该私有地址。 执行NAT(网络地址转换)的客户端路由器在建立IP连接时仅提供公共客户端IP地址。

不见得。 请参阅http://javascript.about.com/library/blip.htm中的简短讨论

好吧,是的,我们这样做只是为了区分计算机,以了解谁在进行输入...

既然你们说跟踪IP并不是很可靠,那么还有其他方法可以用来做同样的事情吗?

我只需要知道从哪个计算机输入了每个条目。

欢迎大家提出意见

您错误地假设有一种方法可以知道从哪个计算机输入了每个条目。 没有人可以确保此信息存在。 通常,它不存在。

确保唯一标识每台计算机的唯一方法是让您标识它。 例如,您可以通过客户端证书来执行此操作。 通常,如果您希望每台计算机都具有唯一的标识符,则需要创建一个唯一的标识符,然后将其放在该计算机上。 然后,您需要计算机将该标识符发回。

没有其他唯一的计算机标识符。

这可能超出了您想要的范围,但使您读到了有趣的内容: 远程物理设备指纹

这使您无需跨NAT或您能想到的任何其他东西,就可以唯一地标识远程物理设备,而无需协作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM