2009-09-19 8 views
2

네트워크가 다운 된 경우 네트워크 상태를 확인하고 싶습니다. 내 네트워크가 다운 된 경우 프로그래밍 방식으로 C#/VB.net을 사용하여 어떤 라우터 또는 서버인지 확인하고 싶습니다. 아래로 인해 네트워크가 또한 아래로,네트워크 상태 확인

희망 만약 당신이 더 많은 설명을 원한다면 내 질문을 설명하십시오.

라우터가 네트워크에 연결되어 있는지 또는 다른 문제가 있는지 확인하고 싶습니다. 네트워크의 위 또는 아래를 확인하는 기술이 많이 있지만 네트워크의 어느 장치로 인해 네트워크가 작동하는지 내 문제 야.

답변

0

WCF를 사용하는 3 계층 응용 프로그램 중 일부는 다단계 테스트를 사용하여 온라인 데이터에 액세스 할 수없는 이유를 확인합니다. 처음에는

, 우리는 컴퓨터를 격리하면 우리가이 API를 사용하여 인터넷에 액세스 할 수있는 경우

ManagementScope scope = new ManagementScope(@"\root\nap"); 
scope.Connect(); 

ObjectQuery query = new ObjectQuery("SELECT * FROM NAP_Client"); 
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query)) 
{ 
    int isolationState = 0; 
    foreach (ManagementObject m in searcher.Get()) 
    { 
     isolationState = int.Parse(m["systemIsolationState"].ToString()); 
    } 

    if (isolationState == 3) // 3 means in quarantine 
    { 
     //NAP is preventing the computer access to the network 
     ....do something 
    } 
} 

그런 다음 우리가 테스트를 진행 (윈도우의 출시 이벤트 2008에서이 기능을보고) 확인 :

[DllImport("wininet.dll")] 
private extern static bool InternetGetConnectedState(out ConnectedStateFlag lpdwFlags, int dwReserved); 

[Flags] 
private enum ConnectedStateFlag : int 
{ 
    Configured = 0x40, 
    LAN = 0x02, 
    RasInstalled = 0x10, 
    Modem = 0x01, 
    ModemBusy = 0x08, 
    Offline = 0x20, 
    Proxy = 0x04 
} 

그런 다음 소켓을 열고 서버 주소에 연결을 시도합니다.

그런 다음 웹 서비스 인스턴스를 만들어 IIS가 제대로 실행되고 있는지 확인하고 오류가 발생하지 않는지 확인합니다.

그런 다음 웹 서비스에서 데이터베이스가 온라인인지 여부를 알려주는 함수를 호출합니다.

+0

그러나 대답은 위에 대한 내 질문이 관리되는 환경에서 관리되지 않는 코드를 사용하는 동안, 어떻게 메모리 누출을 방지 할 수 있다는 것입니다? –