【问题标题】:How to know domain name from IP address in PHP如何从PHP中的IP地址知道域名
【发布时间】:2023-04-10 19:35:01
【问题描述】:

我们知道 PHP 有一个内置的函数来获取域名的 IP 地址

<?php
$ip = gethostbyname('www.example.com');

echo $ip;
?>

但是有没有办法从IP地址知道域名?

我尝试过使用gethostbyaddr,但没有成功。

<?php echo gethostbyaddr( '198.252.206.16' ); ?>

我认为应该有某种方式在 Linux 中将命令 dig 与 PHP 结合使用,但我不确定。

【问题讨论】:

  • 你对“没用”的定义是什么?
  • 我不确定,但请查找此功能:checkdnsrr();
  • 手册中的示例使用了相同的IP(因为域名中有unicode字符,所以不起作用)。在同一份手册中,通过exec 和使用上述dig 命令提供了解决方案 - 所以你研究过这个吗?
  • 是的,我做到了,我试图从过去几个小时中弄清楚。尽一切努力使其工作,但没有成功。
  • 您可以随时使用 whois 或尝试使用 CURL 并“访问”该页面并获取有关它的信息

标签: php gethostbyaddr


【解决方案1】:

尝试使用有效的 IP 地址。我尝试访问您提供的 IP 地址,但那里什么都没有。

【讨论】:

  • 现在使用stackoverflow ip
  • 使用使用gethostbyaddr 工作的stackoverflow.com IP,它返回域。我尝试在我的网站上使用相同的代码,但它返回了一些不同的东西。它对你有用吗?还是你还有同样的问题?
【解决方案2】:

您可以获得该服务器的 A 地址。如果该网络服务器上有多个网站,则您不会获得该信息

【讨论】:

    【解决方案3】:

    如果你有 shell 访问权限,Unix/Linux 服务器可以使用它 超时响应:

    shell_exec('host -W 2 0.0.0.0');

    其中0.0.0.0当然是IP,'2'是秒数 超时。这将返回更详细的信息字符串,其中 一些可能因系统而异的附加文本,所以如果 你想要一个带有主机名的字符串,没有别的,你必须 做一些子串切割。

    试试这个。

    【讨论】:

      猜你喜欢
      • 2011-04-04
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2019-01-13
      • 2021-02-12
      • 2011-05-07
      • 2012-09-04
      相关资源
      最近更新 更多