SMILESERV / iwinv 서비스의 상태를 조회하는 공개 API입니다. 인증이 필요 없으며 읽기 전용입니다.
application/json 이며 30초간 캐시됩니다. CORS가 허용되어 브라우저에서 직접 호출할 수 있습니다.
전체 요약 상태와 서비스별 현재 상태를 가볍게 조회합니다.
{
"status": "operational",
"updated_at": "2026-07-31T15:40:00+09:00",
"services": [
{ "brand": "iwinv", "name": "가상서버", "status": "operational", "label": "정상" },
{ "brand": "iwinv", "name": "네트워크", "status": "degraded", "label": "일부 장애" }
],
"incident_count": 1,
"detail_url": "http://status.iwinv.kr/"
}
| 필드 | 설명 |
|---|---|
status | 전체 요약 상태 |
updated_at | 응답 생성 시각 (ISO 8601, KST) |
services[].brand | 브랜드 (iwinv / smileserv) |
services[].name | 서비스명 |
services[].status | 서비스 상태값 |
services[].label | 상태 한글 라벨 |
incident_count | 진행 중 공지 수 |
detail_url | 자세한 내역을 볼 상태 페이지 |
진행 중인 장애·점검 공지와 영향받는 IP 대역을 조회합니다.
{
"updated_at": "2026-07-31T15:40:00+09:00",
"incident_count": 1,
"incidents": [
{
"id": 16,
"type": "outage",
"type_label": "장애",
"severity_label": "부분 장애",
"status_label": "조치중",
"title": "방화벽 장애",
"started_at": "2026-07-30T11:15:00+09:00",
"eta_end": "2026-07-30T13:00:00+09:00",
"services": ["가상서버", "네트워크"],
"ranges": [
{ "name": "KR1-Z04", "ip_ranges": ["192.168.208.0/16", "192.168.199.0/24"] },
{ "name": "KR1-Z07", "ip_ranges": ["192.168.40.0/16"] }
]
}
]
}
| 필드 | 설명 |
|---|---|
incidents[].title | 공지 제목 |
incidents[].type_label | 유형 (장애 / 긴급점검 / 정기점검) |
incidents[].severity_label | 심각도 (전체 장애 / 부분 장애 등) |
incidents[].status_label | 진행 상태 (조치중 / 모니터링 등) |
incidents[].started_at | 발생/시작 시각 |
incidents[].eta_end | 복구/종료 예상 시각 |
incidents[].services | 영향 서비스명 목록 |
incidents[].ranges[].name | 영향 대역 이름 |
incidents[].ranges[].ip_ranges | 해당 대역의 IP 대역 목록 |
| status | 의미 |
|---|---|
| operational | 정상 |
| maintenance | 점검 |
| degraded | 일부 장애 |
| outage | 장애 |
| unknown | 상태 확인 불가 |
curl https://status.iwinv.kr/api/status.php
const res = await fetch('https://status.iwinv.kr/api/status.php');
const data = await res.json();
console.log(`전체 상태: ${data.status}`);
const { incidents } = await (await fetch('/api/incidents.php')).json();
const myRange = '192.168.40.0/16';
const affected = incidents.filter(inc =>
inc.ranges.some(r => r.ip_ranges.includes(myRange))
);
console.log(affected.length ? '내 대역 영향 있음' : '정상');