我可以使用以下代码获取nameserver:
$result = exec("host -t NS google.com", $outputLines);
foreach ($outputLines as $outputLine)
{
$buffer = explode(" ", $outputLine);
$nsList[] = $buffer[3];
}
$ipList = array_map("gethostbyname", $nsList);
print_r($ipList);
现在$ipList
拥有IP列表。有没有办法通过输入$ipList
中的任何一个IP来获取所有这些IP。
就像反向过程一样,我希望通过输入$ipList
变量中存在的任何一个IP来获取$ipList
变量所拥有的所有IP。
答案 0 :(得分:1)
如果我正确理解你在问什么,你希望能够在一组名称服务器(即NS1,NS2,NS3 ......)中找到名称服务器的所有IP地址给定一个名称服务器IP地址?
这不是......很容易实现,但是有可能做到这一点,尽管你必须长期解决问题才能做到这一点。您必须挂钩到外部服务以尝试获取驻留在IP地址上的名称服务器使用的DNS名称,然后尝试查找名称服务器正在使用的一组域,然后分析正在使用的名称服务器通过那些域名(交叉你的手指,你得到它们),然后基本上对你的现有脚本运行。
也许我错了,但我认为你可能正在接近任何问题,你错误的方式,我曾经在域管理工作,并会一直遇到这些问题,不幸的是它结束了很多DNS数据聚合和分析工作,以便轻松解决这类问题。
答案 1 :(得分:0)
因此,您希望能够找到数组中与特定IP地址匹配的所有值。这可以使用array_keys()
(man page)及其可选的search_value
参数来完成。
$ip_we_are_searching_for = '192.168.0.1';
$matching_keys = array_keys($ip, $ip_we_are_searching_for);
var_dump($matching_keys);