【问题标题】:PHP gethostbyname() returns original ipPHP gethostbyname() 返回原始 ip
【发布时间】:2016-01-05 03:00:50
【问题描述】:

我正在尝试使用gethostbyname() 函数创建一个反向DNS 函数,但是每当我输入一个IP 字符串,比如'104.16.34.249'(SO 的IP)时,它都会返回该字符串作为结果。我做错了什么?

代码(均无效):

$table['ip-host']=gethostbyname($args['args']);
$table['ip-host']=gethostbyaddr($args['args']);

【问题讨论】:

  • 显示代码。只能猜测你的问题。

标签: php networking dns


【解决方案1】:

这正是 gethostbyname() 的设计目的。如果您输入主机名,它将返回 IP 地址。如果您输入 IP 地址,它会将 IP 地址返回给您。如果要取回主机名,请使用 gethostbyaddr()。

http://php.net/manual/en/function.gethostbyaddr.php

【讨论】:

  • 如果 gethostbyaddr() 为您提供了正常的结果,然后检查有问题的机器以查看主机名(也称为计算机名)是否已分配给该主机。
【解决方案2】:

它是expected behaviourgethostbyname() 接收域并将其转换为 IP 地址。

返回由主机名指定的 Internet 主机的 IPv4 地址。

您通过名称(域名)获得主机(IP)。

试试:

<?php
    echo gethostbyname('www.example.com');
?>

您应该获得托管 www.example.com 的服务器的 IP。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-08
    • 2016-03-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多