상세 컨텐츠

본문 제목

Ping 테스트 방법

C#

by 탑~! 2018. 9. 6. 12:31

본문

ping은 특정 ip로의 통신이 가능한지에 대해서 체크하는 기능입니다.

일반적으로 windows의 경우
cmd를 실행 --> ping ip주소 입력 으로 pingtest를 할 수 있습니다.

그렇다면 C#에서 프로그래밍 적으로 이 기능을 사용하고자 한다면

어떻게 해야 할까요?

여기에 제가 아는 두 가지 방법을 소개하고자 합니다.
첫 번째 방법은  System.Net.NetworkInformation.Ping을 사용하는 것이고
두 번째 방법은 Microsoft.VisualBasic.Devices.Network().Ping을 이용하는 것입니다.

첫 번째 보다는 두 번째 방법이 훨씬 간단합니다.

우선 첫 번째 방법은

 try
                {
                    Ping ping = new Ping();
                    PingOptions options = new PingOptions();
                    options.DontFragment = true;
                    string data = "aaaaaaaaaaaaaaaaa";
                    byte[] buffer = ASCIIEncoding.ASCII.GetBytes(data);
                    int timeout = 120;
                    PingReply reply = ping.Send(IPAddress.Parse(아이피 주소), timeout, buffer, options);
                    if (reply.Status == IPStatus.Success)
                        // 네트워크 사용 가능할 때~~
                }
                catch
                {
                }

이렇게 해서 사용할 수 있습니다.
문장도 길어질 뿐더러 쓰레기 값을 보내고 어쩌고 하는 것이기 때문에 영 마음에 들지 않습니다.
그래도 사용하는데 문제는 없습니다.

두 번째 방법은 한 줄이면 끝납니다.

 new Microsoft.VisualBasic.Devices.Network().Ping(도메인이나 아이피주소);

이렇게 하면 반환값으로 bool을 반환해 줍니다. 참 간단하게 사용할 수 있는 방법입니다.

참고로 ~~~.Network().IsAvailable이라는 녀석을 사용하면 현재 디바이스가 네트워크에 연결되어있는지 그 여부도 알 수 있습니다.
여기서 더 추가하자면 이 속성은 changed 이벤트를 제공하기 때문에 즉각적으로 네트워크 연결 상태를 점검할 수도 있습니다.

출처 : http://widelygleam.blogspot.com/2015/07/c-ping.html



관련글 더보기