반응형
Ping으로 호스트를 조회해보고 패킷에 대한 손실이 1일 경우 Offline, 0일 경우 Online으로 표시해준다.
<?php
$iplist = array
(
array("192.168.1.64","PI3"),
array("192.168.1.125","PC_02"),
array("192.168.0.1","PC_03")
);
$i = count($iplist);
$results = [];
for($j=0;$j<$i;$j++) {
$ip = $iplist[$j][0];
$ping = exec("ping -n 1 $ip",$output,$status);
$results[] = $status;
}
echo "<table border='1' >
<th colspan='4'> ping monitoring </th>
<tr>
<td align='right' width='20'>#</td>
<td width='100'>IP</td>
<td width='100'>Status</td>
<td width='250'>Description</td>
</tr>";
foreach($results as $item =>$k) {
echo '<tr>';
echo '<td align="right">'.$item.'</td>';
echo '<td>'.$iplist[$item][0].'</td>';
if($results[$item]==0) {
echo '<td style="color: green;">Online</td>';
}
else{
echo '<td style="color: red;">Offline</td>';
}
echo '<td>'.$iplist[$item][1].'</td>';
echo '</tr>';
}
echo "</table>";
?>
* $ping = exec("ping -n 1 $ip",$output,$status); //ping -n 1 $ip(배열 선언된 아이피들을 ping으로 조회)
* for($j=0;$j<$i;$j++) {
$ip = $iplist[$j][0];
$ping = exec("ping -n 1 $ip",$output,$status);
$results[] = $status;
} //반복문으로 돌리고 $results[] 0 또는 1 상태 값 선언
* foreach($results as $item =>$k) : 배열에 저장된 키, 원소 분리
* $results[$item] 가 0이면 Online, 1 즉 그 외라면 Offline 출력
추가로 끝에
echo header("refresh: 5");
해서 새로고침 해도 되지만
<div id="ping">처럼div 정해서 jquery로 자체 갱신 해줘도 된다.
// <?php ?>
</div>
<script type="text/javascript">
setInterval(function() {
$("#ping").load(location.href+" #ping","");
}, 3000);
</script>
반응형
'Coding > PHP' 카테고리의 다른 글
[PHP] CURL API 여러개의 URL 병렬 요청(curl_multi_init) (0) | 2023.11.30 |
---|---|
[PHP] 복잡한 JSON 파일 PHP로 파싱 (0) | 2023.02.25 |
[PHP] 특정 영역 자동 스크린샷 저장 후 가장 최신 이미지 DB 저장 (0) | 2022.11.30 |
[PHP] 특정 디렉터리에서 가장 최신 파일 출력 및 SQL ISNERT (0) | 2022.11.30 |
[PHP] PHP에서 MySQL로 간단한 이미지 업로드 및 불러오기 (0) | 2022.11.28 |
댓글