【问题标题】:gethostbyaddr($_SERVER['REMOTE_ADDR']) phpgethostbyaddr($_SERVER['REMOTE_ADDR']) php
【发布时间】:2017-05-11 11:15:27
【问题描述】:

为什么 gethostbyaddr($_SERVER['REMOTE_ADDR']) 返回一个 IP 地址,而不是它应该返回的计算机名称。它在办公室的 50 台计算机上按预期工作并返回计算机名称。目前它在我自己的计算机上返回一个 IP 地址,而它应该返回一个计算机名称。

有没有快速解决办法?

【问题讨论】:

    标签: php


    【解决方案1】:

    来自文档:

    gethostbyaddr — 获取与给定 IP 地址对应的 Internet 主机名

    重要的部分是Internet,PHP 所做的是DNS 查找。在您的办公室,您的路由器可能会为本地计算机进行 DNS 解析,但您的家庭未在任何 DNS 上注册。

    根据您的需要,您可以使用:How can I read the client's machine/computer name from the browser?

    但这并不是一件容易的事。

    【讨论】:

    • 当我提到我自己的电脑时,我指的是我的办公室电脑。我在工作中使用的计算机。
    • 好的,但无论如何它适用于另一台计算机,因为 DNS 已解析为这些名称。很可能是由路由器或主机文件引起的。但是根据我对文档的理解,此功能不适用于您的想法,它应该为您提供 DNS 名称而不是 ComputerName,并且适用于 50 台计算机,因为两者在您的办公室中以相同的方式解析。
    【解决方案2】:

    现在,正如最初的问题指出的那样,上面的违规机器在我们公司的 Intranet 环境中运行。现在解决这个问题的方法是公司的 IT 必须重新加入违规机器,在这种情况下,我的工作计算机到域,然后运行组策略。这为我在同一个 Intranet 上的两台不同机器上修复了它。这种情况不会经常发生,但我们的 IT 过去一直在为解决方案感到困惑。上述操作将 IP 恢复为所需的机器名称。

    【讨论】:

    • Larandar 的回答准确地指出了您问题的根源,并引导您以正确的方式解决问题,尽管该问题确实针对您的情况。请考虑接受他的回答,或者你自己的回答。
    猜你喜欢
    • 2013-05-27
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2011-10-06
    • 1970-01-01
    • 2021-03-12
    • 2013-10-19
    • 1970-01-01
    相关资源
    最近更新 更多