Php 唯一标识一台计算机

Php 唯一标识一台计算机,php,firefox,Php,Firefox,我在一所大学工作,我正在实现一个PHP web应用程序,当从某台计算机访问它时,它需要有不同的行为。我遇到的问题是,在Web服务器上,使用$\u SERVER['REMOTE\u ADDR']和gethostbyaddr(),我只能识别计算机正在通过的路由器,而不能识别特定的计算机名 我是否可以将一台特定的计算机设置为向服务器标识自己,以便服务器知道何时从该计算机访问webapp?计算机正在kiosk模式下运行firefox,因此允许使用插件或greasemonkey脚本…您可以设置cookie

我在一所大学工作,我正在实现一个PHP web应用程序,当从某台计算机访问它时,它需要有不同的行为。我遇到的问题是,在Web服务器上,使用$\u SERVER['REMOTE\u ADDR']和gethostbyaddr(),我只能识别计算机正在通过的路由器,而不能识别特定的计算机名


我是否可以将一台特定的计算机设置为向服务器标识自己,以便服务器知道何时从该计算机访问webapp?计算机正在kiosk模式下运行firefox,因此允许使用插件或greasemonkey脚本…

您可以设置cookie。这将被客户机记住,并作为每个请求的一部分传输到服务器。这里的更多信息:

您没有会话ID吗? 您的会话ID应该足够独特,以便识别计算机。

一些想法:

  • 放一块耐用的饼干。(由于FF处于kiosk模式,您应该不会被用户清除。)
  • 让该信息亭使用不同的URL(可能带有查询字符串参数)

不会做的是根据机器的MAC地址(告诉我们这是可能的)或类似地址工作;当硬件得到修复时太脆弱,等等。

[Change Firefox's user agent header][1]可以唯一标识该机器,然后您可以在PHP中从
$\u服务器['HTTP\u user\u agent']

ssl和客户端证书如何


您可以设置cookie,或者,您可以将Firefox安装使用的UserAgent头修改为与众不同的内容

要更改用户代理字符串,只需 在中输入about:config作为地址 FireFox的地址栏 您通常在其中输入 URL(链接)。我建议保存 原始值,您可以获得该值 当您输入时:在 地址栏

现在,按下鼠标右键以 获取上下文菜单并选择 菜单项“新建”中的“字符串”。 输入首选项名称 “general.useragent.override”,不带 引用。接下来,输入新用户 你想要Mozilla Firefox的代理值 使用。我添加了我的名字和链接到 我的网站的原始价值。你 也可以从列表中选择一个 用户代理字符串。检查新的 通过在 地址栏


您可以从php中的
$\u服务器['HTTP\u User\u Agent']
检索此用户代理字符串。

我肯定您得到了一个非常好的答案,但如果您正在寻找唯一标识计算机而不是浏览器的解决方案,请查看FLASH Cookie a.k.a FLASH共享对象


这些功能更强大,可用于存储高达100KB的数据,并且在所有使用flash的浏览器中都保持不变,因此它是唯一标识用户的更好解决方案

为什么不实施身份验证系统并将需要特殊功能的用户放入特殊组中?

试试这个

$something=$_SERVER['HTTP_USER_AGENT'];
要唯一地识别用户,请检查
$something
是否与您自己的匹配(在您的php代码中)。
如果是,则继续访问。

如果他们关闭浏览器,则不进行访问。只需与ceejayoz达成一致即可。与被问的问题无关。有趣的是你们完全误解了答案。显然,sessionID在cookie中,即使关闭浏览器,cookie也会得到维护。不幸的是,如果有人可以访问该计算机,他可以窃取cookie并在其他计算机上设置相同的cookie。@Dmitry不幸的是,不可能有任何解决方案不能通过直接物理访问该计算机来打破。