코드

특정 포트 오픈 확인 예제5 - php

T8.CO.KR 2026. 9. 26. 20:07

예)아래와 같은 형식의 URL 주소에서 TCP 80, 443 포트가 열려 있는지 일괄 확인한다.

www01.t8.co.kr,

www02.t8.co.kr,

www03.t8.co.kr,

...

www50.t8.co.kr

*서버 또는 서비스가 정상인지 아닌지 주기적으로 모니터링하는 단순한 관제에 활용한다.

 

<!DOCTYPE HTML>

<html>

<head>

<title>원격 포트 확인</title>

</head>

<body>

<?php

$urls = 'www*.t8.co.kr';

$ports = explode(',', '80,443');

$openlist = '';

for($i=1;$i<51;$i++) {

$num = sprintf('%02d',$i);

    $url = str_replace('*', $num, $urls);

    foreach($ports as $port) {

        $line = "{$url}:{$port}:";

        if(check_port($url,$port,$timeout=0.5)) {

            $line .= "open\n<br>";

            $openlist .= $line;

        } else {

            $line .= "close\n<br>";

        }

        echo $line;

    }

}

if($openlist!='')

echo "\n-----Open List-----\n<br>{$openlist}";

function check_port($url,$port,$timeout=0.1) {

    $conn = @fsockopen($url, $port, $errno, $errstr, $timeout);

    if ($conn) {

        fclose($conn);

        return true;

    }

}

?>

</body>

</html>