我在尝试读取包含由新行分隔的 IP 地址的文件时遇到此错误。我想要做的是阅读包含大量 IP 的文件并检查它们是否有正确的记录。这是我的代码:
$file = "test.sh";
if (is_file($file) && is_readable($file)) {
$get_file_data = file_get_contents($file);
$turn_to_array = explode("\n", $get_file_data);
foreach ($turn_to_array as $key => $value) {
if (filter_var($value, FILTER_VALIDATE_IP)) {
echo gethostbyaddr(trim($value));
} else {
echo "IP invalid";
}
}
}
我的 test.sh 文件如下所示:
编辑:示例 IP
180.1.1.1
181.1.1.2
我需要添加一些特定的测试来解析文件还是有其他问题?
使用非常独特的方法引起的错误:
警告:gethostbyaddr():地址不是有效的 IPv4 或 IPv6 PHP
解决了。
我的代码正常工作,我没有正确获取 rdns 记录,因为这些 IP 不存在它。我用主机 185.1.1.1检查了它,它返回了实际的 IP 而不是域。然后检查我确信他们有 PTR 记录的 IP,然后它就醒了。但我不确定实际上是如何修复错误的。