我在嘗試讀取保存由新行分隔的IP地址的文件時遇到此錯誤。我想要做的是閱讀我擁有一堆IP的文件並檢查它們是否有正確的記錄。這是我的代碼:帶有多行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而不是域。然後檢查知道IP的人,我確信他們有PTR記錄,並且它啓動了。但我不確定究竟是如何確定錯誤的。
在此上下文中使用'PHP_EOL'時要小心。你正在運行它的服務器可能是* nix並使用'\ n',但該文件可能已經在Windows上生成,因此具有'\ r \ n' –
而不是'file_get_contents'和'explode(PHP_EOL'只是使用''也'var_dump'你的變量'$ value'來確認它是如預期的那樣 – chris85
@TessellatingHeckler xxx只是IP的掩碼 我正在運行測試我的Debian – fugitive