IP 주소가 새 줄로 구분 된 파일을 읽으려고 할 때이 오류가 발생합니다. 내가하고 싶은 일은, IP 묶음을 가지고있는 나의 파일을 읽는 것이고, 그들이 적절한 기록을 가지고 있는지 확인하는 것입니다.여러 줄의 IP 주소가있는 잘못된 IP 주소
편집 : 예를 들어 IP의
180.1.1.1
181.1.1.2
내가 파일을 구문 분석하는 일부 특정 테스트를 추가해야합니까 또는
$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 파일은 다음과 같습니다 : 이것은 내 코드입니다 다른 문제가 있습니까?
사용되는 매우 독특한 방법에 의한 오류 :
경고 :이 gethostbyaddr() : 주소가 아닌 해결 유효한 IPv4 또는 IPv6 PHP
.
내 코드가 제대로 작동하지 않았기 때문에 rdns 레코드가 올바르게 생성되지 않았습니다. IP에 해당하지 않았기 때문입니다. 나는 호스트 185.1.1.1으로 확인했고 도메인이 아닌 실제 IP를 반환했습니다. 그런 다음 PTR 레코드가 있다고 확신하는 IP를 확인하고 멍청하게 봤습니다. 그러나 오류가 실제로 어떻게 고정되었는지 정확히 모르겠습니다.
이 문맥에서'PHP_EOL'을 사용할 때주의하십시오. 실행중인 서버가 * nix 일 수 있고'\ n'을 사용할 수 있지만 Windows에서 파일이 생성되어'\ r \ n '이 될 수도 있습니다 –
'file_get_contents' 및'explode (PHP_EOL') 대신 'File ('또한'var_dump' 변수'$ value'를 사용하여 예상대로 확인합니다.) – chris85
@TessellatingHeckler xxx는 IP 마스크 일뿐입니다. 데비안을 테스트하고 있습니다. – fugitive