pywebview + ping3 기반의 경량 데스크톱 핑 테스터. iOS 스타일 UI로 대상 호스트에 1초 주기로 핑을 보내고 지연 시간·성공률 통계를 실시간으로 보여줍니다.
Python 백엔드(
Api.py_ping)와 HTML/JS 프런트엔드를 pywebview의 JS 브리지로 연결한 단일 창 앱입니다.
- 호스트명 / IPv4 / IPv6 핑 (1초 주기 반복)
- 실시간 통계: Sent / Success / Fail / 평균 지연(ms)
- 항목 클릭 시 상세 보기(시퀀스, 시각, 원본 응답)
- 입력값 검증 및 응답 출력 이스케이프 처리
- Python 3.13 (3.10+ 권장)
- Windows (ping3의 raw socket 사용 — 환경에 따라 관리자 권한 필요)
# 가상환경 권장
python -m venv .venv
.venv\Scripts\activate # Windows
# source .venv/bin/activate # macOS/Linux
pip install -r requirements.txt
python main.pyraw socket 권한 부족으로
권한 오류메시지가 뜨면, 터미널을 관리자 권한으로 실행한 뒤 다시 시도하세요.
PyInstaller로 단일 exe를 만듭니다.
pip install pyinstaller
pyinstaller main.spec빌드 결과물은 dist/main.exe에 생성됩니다. (dist/, build/는 .gitignore로 제외됨)
.
├── main.py # pywebview 진입점 + Python 핑 브리지(Api)
├── index.html # UI + 프런트엔드 로직
├── main.spec # PyInstaller 빌드 스펙
├── requirements.txt
├── .gitignore
├── LICENSE
└── README.md
- ping3는 수신 패킷의 TTL/byte 수를 제공하지 않으므로 해당 값은 표시하지 않습니다.
- 백신/방화벽이 raw socket(ICMP)을 차단하면 핑이 실패할 수 있습니다.
MIT © 리하 (riha-cats)