PHP로 서버 포트 핑
원격 서버의 연결 상태를 확인하는 것은 네트워크 관리 및 테스트의 중요한 측면입니다. PHP는 fsockopen() 함수를 사용하여 IP 주소와 포트를 ping하는 간단한 방법을 제공합니다. 그러나 질문에 언급된 기존 스크립트는 특정 IP:포트 조합이 아닌 웹사이트 테스트에만 국한됩니다.
이러한 요구를 해결하기 위해 TCP 연결 설정 메커니즘을 활용할 수 있습니다. 주어진 IP 주소와 포트로 TCP 연결을 시도함으로써 서버의 가용성을 추론할 수 있습니다. 아래 코드는 이 기능을 요약합니다.
<code class="php"><?php function ping($host, $port, $timeout) { $tB = microtime(true); $fP = fsockopen($host, $port, $errno, $errstr, $timeout); if (!$fP) { return "down"; } $tA = microtime(true); return round((($tA - $tB) * 1000), 0)." ms"; } // Usage example: ping a server at IP address 127.0.0.1, port 80 echo ping("127.0.0.1", 80, 10); ?></code>
이 코드 조각은 서버가 지정된 포트에서 TCP 연결을 수락하는지 여부를 결정합니다. 지정된 제한 시간 내에 연결이 설정되면 함수는 핑 응답 시간을 밀리초 단위로 반환합니다. 그렇지 않으면 "down"을 반환하여 서버에 연결할 수 없음을 나타냅니다.
응답을 더욱 구체화하려면 허용된 답변에 제공된 pingDomain() 함수를 사용할 수 있습니다.
<code class="php"><?php function pingDomain($domain){ $starttime = microtime(true); $file = fsockopen ($domain, 80, $errno, $errstr, 10); $stoptime = microtime(true); $status = 0; if (!$file) $status = -1; // Site is down else { fclose($file); $status = ($stoptime - $starttime) * 1000; $status = floor($status); } return $status; } // Usage example: ping a server at domain name example.com echo pingDomain("example.com"); ?></code>
PHP의 소켓 기능을 활용하면 IP 주소와 도메인 이름 모두를 효과적으로 ping하여 연결을 테스트하고 응답하지 않는 호스트를 식별할 수 있습니다.
위 내용은 PHP에서 원격 서버 포트를 ping하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!