반응형

 

C++ Ping 예제소스로 입력한 아이피의 네트워크 연결을 확인할 수 있다.


 

# 개발환경

  • 개발도구 : Visual Studio Community 2017

 

# 결과

  • 입력한 아이피(127.0.0.1)로 ping 명령어 전송함.
  • 정상 ping 송수신 시 OK, 비정상인 경우 Not OK


# 예제소스

  • _popen, _pclose 함수를 사용하여 명령프롬프트(CMD) 실행함.
  • ping -n 1 -w 1 127.0.0.1 | findstr TTL
#include <iostream>

int sendPing(char* ipAddr);

int main()
{
    char ipAddr[128] = "127.0.0.1";
    int flagChk = sendPing(ipAddr);
    if(flagChk==1) printf("OK\n");
    else               printf("Not OK\n");

    return 1;
}

int sendPing(char* ipAddr){
    FILE* cmdWnd;
    char cmdPing[64];
    char buf[128] = {0, };

    bool flagPingOk = 0;
    sprintf(cmdPing, "ping -n 1 -w 1 %s | findstr TTL", ipAddr);
    cmdWnd = _popen(cmdPing, "r");
    if(cmdWnd != NULL){
        int bufLineCnt = 0;
        while(fgets(buf, 128, cmdWnd) != NULL){
            printf("Reply from %s : bytes=32, time<1ms, TTL=128\n", ipAddr);
            bufLineCnt++;
        }

        if(bufLineCnt > 0) flagPingOk = 1; // Connected
        else                   flagPingOk = 0; // Not Connected
    }
    _pclose(cmdWnd);

    return flagPingOk;
}

감사합니다.

 

잘못된 정보나 오타 및 수정사항이 있을 경우 댓글로 달아주시면 감사하겠습니다. 

 


 

반응형

+ Recent posts