【问题标题】:Get the default server in php在php中获取默认服务器
【发布时间】:2019-06-25 10:19:04
【问题描述】:

当我在 cmd 提示符下输入 nslookup 时,它会告诉我默认服务器。

如何使用 PHP 检索这些信息?

它返回的服务器与运行 PHP 的服务器不同(或者运行 nslookup 的服务器)。

我知道我可以运行 nslookup 并解析输出,但这似乎不是很健壮(即,如果输出在未来版本的 nslookup 中更改格式怎么办)。

【问题讨论】:

  • 您是在问如何使用 PHP 找到给定主机名的 IP 地址?
  • 不,我没有主机名 - 这就是我想要的。
  • 什么主机名?如果我输入nslookup,那么我会得到一个> 提示符。
  • 我也收到了> 提示,但是在它告诉我它正在使用的默认服务器之后。这突出了我的稳健性问题:-)
  • 默认服务器是干什么用的?

标签: php nslookup


【解决方案1】:

“默认服务器”是您的主 DNS 服务器。无法直接使用 PHP 获取默认 DNS 服务器。 在昆汀询问后,从您的进一步信息中,您不需要寻找 DNS 名称。 如果它是您使用 f.ex 登录的服务器。 Windows,这可能是正确的答案:

echo getenv("LOGONSERVER");

否则,您使用 exec 和解析输出的解决方案将是最好的。也许您可以为此使用ipconfig /all 并查找 DNS 或 DHCP 服务器,具体取决于您的环境。

【讨论】:

  • getenv("LOGONSERVER") 返回的服务器与 nslookup 中显示的服务器不同,但是,该主机也适用于 ldap 连接 - 不明白为什么,但它可以正常工作,所以不在乎为什么: -)
  • LOGONSERVER-Variable 包含服务器的 NetworkName,其中 nslookup 命令返回解析为 IP 的主机名。因此,这只有在您登录此服务器并且在同一个 LAN 中时才有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-12
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多