Ping 테스트 방법
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