먼저 다음 코드를 보면 두 출력 결과가 동일합니다.
$dm = 'www.phpfensi.com'
$ip = gethostbyname($dm);
echo gethostbyaddr($ip);
echo $ip;
gethostbyname 구문 정보:
string gethostbyname( string $hostname )
호스트 이름으로 지정된 인터넷 호스트의 ipv4 주소를 반환합니다.
다음은 해결하기 위해 제가 생각해낸 최선의 접근 방식인 예입니다. 호스트 이름을 IP 주소로 변환할 때 빠르고 안정적이며 시간 초과 지원, 유효하지 않은 주소(예: 유니코드 문자열)는 gethostbyname을 호출할 때 8초가 아닌 4초 후에 반환됩니다. 그러나 코드는 다음과 같습니다.
function getaddrbyhost($host, $ 시간 초과 = 3) {
$query = `nslookup -timeout=$timeout -retry=1 $host`
if (preg_match('/ 주소: (.*) /', $query, $matches))
return Trim($matches[1]);
return $host
}
gethostbyaddr은 특정 IP 주소에 해당하는 인터넷 호스트 이름은 다음과 같습니다.
string gethostbyaddr (string $ip_address)
$hostname = gethostbyaddr( $_server['remote_addr']);
echo $hostname