在Intranet Meteor/Javascript上获取唯一的客户端IP或MAC地址

在Intranet Meteor/Javascript上获取唯一的客户端IP或MAC地址,javascript,meteor,ip-address,mac-address,intranet,Javascript,Meteor,Ip Address,Mac Address,Intranet,我正在寻找一种方法,以避免使用登录系统的网站在我的公司的内部网。我一直在尝试查找客户端IP、MAC地址或任何其他唯一标识符。我尽量避免使用饼干。我知道客户端IP和MAC地址可以被欺骗,但我仍然想尝试使用它 我见过很多其他类似的帖子,尤其是那些使用this.connection.clientAddress的帖子,但不幸的是,我没能让它们正常工作。仅当我将其用于localhost时,它才起作用。当我试图在服务器上使用它时,我无法获得唯一的IP地址,可能是因为服务器前面有所有的代理。我一直在尝试使用H

我正在寻找一种方法,以避免使用登录系统的网站在我的公司的内部网。我一直在尝试查找客户端IP、MAC地址或任何其他唯一标识符。我尽量避免使用饼干。我知道客户端IP和MAC地址可以被欺骗,但我仍然想尝试使用它

我见过很多其他类似的帖子,尤其是那些使用this.connection.clientAddress的帖子,但不幸的是,我没能让它们正常工作。仅当我将其用于localhost时,它才起作用。当我试图在服务器上使用它时,我无法获得唯一的IP地址,可能是因为服务器前面有所有的代理。我一直在尝试使用HTTP_FORWARDED_COUNT环境变量来猜测有多少代理,并可能获得唯一的值,但我没有成功。有人对如何解决这个问题有什么想法吗

编辑
附加信息:我将尝试使用唯一的信息来阻止特定用户在一段时间内(可能是24小时)在我的网站上执行某个操作多次。

我认为最好使用服务器端技术来处理此问题,而不是客户端。客户端Javascript不会直接向您发送任何IP信息。在PHP中,您可以使用
$\u SERVER['REMOTE\u ADDR']
来接收IP地址,但是,正如您所说,它很容易被欺骗,除非机器静态分配IP地址,否则IP地址可能会频繁更改并变得不可靠。

当我使用“this.connection.clientAddress”时,我将其放在服务器端代码中。我用错了吗?在我之前的研究中,我确实发现了一个与你提供的命令类似的命令。我在《流星》中写道:this.connection.remoteAddress。不幸的是,在使用它时,除了“undefined”之外,我一直无法得到结果。当我使用clientAddress时,它给了我一个唯一的地址,但是只有在本地主机上。你知道为什么会这样吗?还有什么理论,比如我可能做错了什么?还有你的解决方案是如何绕过服务器前面的所有代理的?Meteor是一个客户端框架,你使用的是什么服务器端系统?PHP,ASP,Django?啊,对不起,我误解了。我在用MongoDB。这是meteor的默认值。MongoDB是您的数据库,而不是后端服务器语言。你用什么来服务你的页面,也许是NodeJ?使用身份验证(通过你的AD或LDAP服务器)并保存审核日志。它将比从系统中派生令牌更简单、更可靠、更可用。我确实使用LDAP来比较某些东西,但我对您的建议感到困惑。我可以在LDAP中输入什么唯一字段来标识用户?你能告诉我他们的用户名吗?用户Id?您的intranet身份提供者已经为每个主体提供了唯一的标识符,因此请使用该标识符,而不是发明新的系统。问题是,我试图避免任何形式的登录。为了让我知道他们的用户ID或用户名,他们必须在某处输入。除非有办法在没有任何形式提示的情况下获得该信息?我们需要这样做,因为我们的任务是使网站尽可能简单,避免登录是主要功能之一。如果您使用某种形式的yubikey或客户端证书,则无需提示即可做到这一点。将密钥/证书上的标识符绑定到现有记录(如FreeIPA和SSH证书)。