- 6
- 사나이
- 조회 수 756
안녕하세요.
간단한? 프로그램 관련 질문 드립니다
핑 유무로 핑이 통했을 때는 아래와 같이 206호실이 빨간색으로
핑이 통하지 않았을때는 아래와 같이 하얀색으로 표시를 하고 싶은데
어떤프로그램으로 개발을 한건지, html으로 표현을 한 건지 감이 안잡히네요
위와같이 된다면 외부에서 스마트폰으로도 객실상황을 볼 수 있어서
핑은 계속 날리는 것이 아니라 F5새로고침할때마다 한번씩 날렸으면 좋을 것 같습니다
혹시라도 오토핫키? 파이썬? 등 소스 도움을 좀 얻을 수 있을까요? 아니면 어떠한 자료를 봐야 하는지 원리 및 조언 해주시면 감사하겠습니다
작성자
댓글 6
ping을 한 번만 보내는 방법은 아래 명령어를 사용하시면 됩니다.
ping [IP주소] -n 1
일단 자바스크립트만으로는 불가합니다. 자바 스크립트만으로는 ping을 보내는 것이 불가합니다. (클라이언트에서 특정 포트를 LISTENING 하고 있는 프로세스가 존재하고 해당 프로세스가 컴퓨터가 켜져있는 동안 계속 동작한다면 가능합니다.)
간략하게 할 수 있는 방법을 설명하면 다음과 같습니다.
JSP나 PHP와 같이 서버 사이드 언어를 활용하여 IP 주소를 인자로 전달하여 요청을 받을 수 있도록 구성합니다.
이후 해당 언어에서 제공하는 OS 실행 명령어를 활용하여 인자로 전달 받은 IP주소로 ping 명령을 실행해서 얻은 결과로 성공/실패 여부를 출력할 수 있도록 구성합니다.
그런 다음 자바스크립트의 XMLHttpRequest를 활용해서 해당 주소로 IP 목록을 보내서 성공으로 출력된 방은 흰색으로 실패로 출력된 방은 빨간색으로 할 수 있도록 하면 됩니다.
humit 님 안녕하세요? 개강은 잘 하셨는지요? ^^
humit 님 말씀을 듣고 XMLHttpRequest를 활용하는 방법에 대해 구글링해보니 다음과 같은 소스가 있네요.
ICMP가 아니라 TCP라서 엄밀한 의미의 ping이라고 볼 수는 없고
ICMP ping과 비교하여 얼마나 딜레이가 발생할지는 모르겠지만 결과적으로는 거의 유사하겠네요.
우회적이지만 ajax를 활용하는 방법도 있는 것 같더군요.
그럼 좋은 오후 되세요!
function ping(host, port, pong) { var started = new Date().getTime(); var http = new XMLHttpRequest(); http.open("GET", "http://" + host + ":" + port, /*async*/true); http.onreadystatechange = function() { if (http.readyState == 4) { var ended = new Date().getTime(); var milliseconds = ended - started; if (pong != null) { pong(milliseconds); } } }; try { http.send(null); } catch(exception) { // this is expected } }
저렇게 하면 클라이언트 단에서 해당 포트가 열려있지 않으면 안됩니다 ㅎㅎㅎ
앗 그렇군요! 감사합니다 ^^
새 학기라 바쁘시겠지만 굿밤 되세요~!
<% Set FileSys = Server.CreateObject("Scripting.FileSystemObject") FileName = FileSys.GetTempName Set WShShell = Server.CreateObject("WScript.Shell") IP = "" '여기에 아이피 RetCode = WShShell.Run("g:\proc\ping.bar " & IP & " " & FileName, 1, True)'여기서 핑 체크하고 결과파일 생성 if RetCode = 0 Then '실행에러 else '에러핸들링 end if Set TextFile = FileSys.OpenTextFile("d:\proc\" & FileName & ".txt", 1) TextBuffer = TextFile.ReadAll For i = 1 to Len(TextBuffer) If Mid(TextBuffer,i,1) = chr(13) Then Response.Write("<BR>") else Response.Write(Mid(TextBuffer,i,1)) end if Next TextFile.Close FileSys.DeleteFile "d:\proc\" & FileName & ".txt" %>
http://www.4guysfromrolla.com/webtech/102998-1.shtml 찾으시는게 맞나요?
자바스크립트로 가능합니다.
특정 ip 주소로 접속했을시 빨간색 처리하면 되겠네요.