2013-08-08 3 views
0

캡 티브 포털이 인터넷 연결에서 사용 중이거나 커피 숍에서 연결된 랩톱을 검색하려고합니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa370750(v=vs.85).aspxWindows 및 포털 포털 감지

"이 연결 플래그를 사용하여 NA_InternetConnectivityV4 또는 NA_InternetConnectivityV6 속성에 대한 조회하여 검색 할 수 있습니다 : 여기에 문서에 따르면

NETWORKLIST.NetworkListManager _networkListManager = new NetworkListManager(); 
foreach (INetworkConnection net in _networkListManager.GetNetworkConnections()) 
{     
    if (net.GetConnectivity().HasFlag(NLM_CONNECTIVITY.NLM_CONNECTIVITY_IPV4_INTERNET) == true) 
     { 
      // Check if we are connected by a captive web portal 
      // using NLM_INTERNET_CONNECTIVITY_WEBHIJACK 
     }         
} 

:이 네트워크 목록 관리자 COM 개체를 사용하여 달성하기 위해 노력

INetwork 또는 INetworkConnection 인터페이스의 IPropertyBag 인터페이스 "

NA_InternetConnectivityV4 열거 형이없는 것으로 나타났습니다. 완료 구현) 또는 나는 그들과 함께 일하는 방법을 모른다.

캡 티브 포털이 사용되는 시점을 감지하는 방법에 대해 실제로이 기술을 사용했거나 아이디어가있는 사람이 있습니까?

답변

1

이없는 C#하지만 난 그 API를 C++

에 작동하는 것으로 pNetworkListManager-> GetNetworks (NLM_ENUM_NETWORK_CONNECTED, & pEnum) INetwork * pINetwork; 자세한 내용에 대한

//Should actually loop through the possible networks. 
HRESULT hr = pEnum->Next(1, &pINetwork, nullptr); 

IPropertyBag *pNetworkPropertyBag; 
HRESULT hrQueryInterface = pINetwork->QueryInterface(IID_IPropertyBag, (LPVOID*)&pNetworkPropertyBag); 
if (SUCCEEDED(hrQueryInterface 1) && pNetworkPropertyBag != nullptr) 
{ 
    NLM_CONNECTIVITY networkConnectivity; 
    VARIANT variantConnectivity; 

    if (SUCCEEDED(pINetwork->GetConnectivity(&networkConnectivity))) 
    { 
     if ((networkConnectivity & 
     NLM_CONNECTIVITY_IPV4_INTERNET) == NLM_CONNECTIVITY_IPV4_INTERNET) 
     { 
      VariantInit(&variantConnectivity); 
      if (SUCCEEDED(pNetworkPropertyBag->Read(NA_InternetConnectivityV4, &variantConnectivity, nullptr)) && (V_UINT(&variantConnectivity) & NLM_INTERNET_CONNECTIVITY_WEBHIJACK) == NLM_INTERNET_CONNECTIVITY_WEBHIJACK) 
      { 
       //Captive Portal detected 
      } 
      VariantClear(&variantConnectivity); 
    } 
} 

확인이에게 : http://www.codeproject.com/Articles/1088221/Captive-Portal-Detection-with-Windows-APIs

0

조사 결과 NA_InternetConnectivityV4 열거 형이 존재하지 않으며 MSDN 설명서가 올바르지 않습니다.