【问题标题】:Can i get the client username in PHP?我可以在 PHP 中获取客户端用户名吗?
【发布时间】:2019-08-09 14:12:51
【问题描述】:

所以我在 Intranet 上运行这个网站。它有一个表格,填写一些数据然后提交。现在我也想获取用户的用户名,所以用户不必输入它。到目前为止,我尝试了$username = gethostbyaddr($_SERVER['REMOTE_ADDR]);。这就像一个魅力,因为它给了我数据来自哪里的计算机名称。但是不同的用户可以登录机器,这就是为什么这没有帮助。

为了更清楚地了解到目前为止的工作情况:ComputerA 正在运行 XAMPP 服务器。我可以使用 ComputerB 连接到网站,当我提交数据时,我的 sql 服务器将 ComputerB 作为用户名。用 ComputerC 进行了同样的尝试,它也显示了 ComputerC。

我正在寻找的是 C:\Users\(name)\Desktop.我想知道这个名字是什么?另外,如果你们能告诉我一些更好的可以是独一无二的,那也很好。它不一定是名字。

【问题讨论】:

  • 仅供参考:gethostbyaddr() 非常慢。我不建议在每个请求上都使用它。
  • 为此,您需要使用 .NET,它只能在 Intranet 上运行。如果用户使用 IE,它也只会自动选择用户名。在 Firefox 和 Chrome 中,系统会提示他们输入凭据。
  • 你有/指导我任何例子吗?

标签: php windows authentication


【解决方案1】:
exec("wmic /node:$_SERVER[REMOTE_ADDR] COMPUTERSYSTEM Get UserName", $user);
echo($user[1]);

(如果您的 PHP 服务器托管在非 Windows 机器上,或者您的 linux 主机具有通过其他工具扩展的 wmic 功能,这将不起作用)

【讨论】:

  • 为什么这个命令在 IIS7 中不起作用?它在 XAMPP 中运行良好。
【解决方案2】:

你可以用这个

<?php 
$serverName = gethostname();
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 2018-10-01
    • 2011-10-11
    • 2014-12-28
    • 2016-07-27
    • 2021-10-03
    • 2018-07-13
    相关资源
    最近更新 更多