Inquiridor
Ip de conexão feita com o Connection Manager

Pergunta
-
Olá, pessoal!
Estou usando o Connection Manager para estabelecer conexões à internet ou mesmo uma rede privada.
O problema, é que eu preciso saber o IP que o dispositivo recebeu para essa conexão.
Não consegui uma forma confiável de obter o IP que foi recebido para uma determinada rede.
Atraves da função ConnMgrQueryDetailedStatus eu consigo ver todas os Adapters com seus respectivos IPs, mas não encontrei uma forma de relacionar esses dados com a conexão que acabei de estabelecer.
Para estabelecer a conexão, estou usando a função ConnMgrEstablishConnectionSync.
Alguém já precisou de algo parecido ou sabe como posso proceder para descobrir o IP da conexão que foi estabelecida?
Desde já agradeço!
Todas as Respostas
-
-
Carlos, valeu demais pela resposta, mas esse exemplo lista todos os IPs dos adaptadores na máquina e o que eu preciso é saber o IP de uma conexão que acabei de estabelecer (usando a função ConnMgrEstablishConnectionSync).
Com a função ConnMgrQueryDetailedStatus eu também consigo obter os IPs das conexões, mas não consigo associar qual conexão foi estabelecida, já que eu passo para ConnMgrEstablishConnectionSync um GUID como parâmetro.
Um exemplo:
Usando o trecho de código:
...
GUID networkGUID = IID_DestNetInternet; // {436EF144-B4FB-4863-A041-8F905A62C572}
...
CONNMGR_CONNECTIONINFO m_connMgrInfo;
memset( &m_connMgrInfo, 0, sizeof( m_connMgrInfo ) );
m_connMgrInfo.cbSize = sizeof( m_connMgrInfo );
m_connMgrInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
m_connMgrInfo.dwFlags = m_useProxyIfAvailable ? CONNMGR_FLAG_PROXY_HTTP : 0;
m_connMgrInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
m_connMgrInfo.guidDestNet = networkGUID; // Passo o GUID da conexão que eu quero
HRESULT hr = ConnMgrEstablishConnectionSync( &m_connMgrInfo, &m_connMgrHandle, 30000, &dwStatus );
if (FAILED(hr))
{
// trata o erro}
//Conexão estabelecida
Após a conexão estabelecida, se eu listar todas as conexões com a função ConnMgrQueryDetailedStatus, obtenho o seguinte:
------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 0
Connection dwParams: 879
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 6
Connection dwSubtype: 1
Connection dwVer: 1
Connection guidDestNet: {A1182988-0D73-439E-87AD-2A5B369F808B}
Connection guidSourceNet: {02188B22-E3B8-465B-B75C-176800684CB4}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: null-corp-{02188B22-E3B8-465B-B75C-176800684CB4}
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 0
Connection dwParams: 879
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 6
Connection dwSubtype: 1
Connection dwVer: 1
Connection guidDestNet: {436EF144-B4FB-4863-A041-8F905A62C572}
Connection guidSourceNet: {02188B22-E3B8-465B-B75C-176800684CB4}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: HTTP-{02188B22-E3B8-465B-B75C-176800684CB4}
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 0
Connection dwParams: 879
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 6
Connection dwSubtype: 2
Connection dwVer: 1
Connection guidDestNet: {7022E968-5A97-4051-BC1C-C578E2FBA5D9}
Connection guidSourceNet: {053A7E76-B658-4441-801A-71AF42636AB4}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: WAP-{053A7E76-B658-4441-801A-71AF42636AB4}
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 5
Connection dwParams: 887
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {02188B22-E3B8-465B-B75C-176800684CB4}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: autotrac
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 5
Connection dwParams: 887
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {D39778A4-390F-4E2D-BF0D-E43B8C51AF3F}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: TIM TV
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 5
Connection dwParams: 887
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {2358C3DF-5EFE-40B7-A2B6-C3CFB08BD28D}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: TIM BOX
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 5
Connection dwParams: 887
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {C101BCFD-FF8A-4E7A-B322-D943C01CFF4A}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: TIM MMS
--------------------------------------
Connection dwConnectionStatus: 32
Connection dwFlags: 5
Connection dwParams: 887
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {053A7E76-B658-4441-801A-71AF42636AB4}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr:
Connection szAdapterName:
Connection szDescription: TIM WAP FAST
--------------------------------------
Connection dwConnectionStatus: 16
Connection dwFlags: 5
Connection dwParams: 3063
Connection dwSecure: 0
Connection dwSignalQuality: 0
Connection dwType: 1
Connection dwSubtype: 6
Connection dwVer: 1
Connection guidDestNet: {02188B22-E3B8-465B-B75C-176800684CB4}
Connection guidSourceNet: {00000000-0000-0000-0000-000000000000}
Connection pIPAddr: 189.117.169.245
Connection szAdapterName: WWAN1-tim.br-1
Connection szDescription: TIM CONNECT FAST
--------------------------------------
O que eu preciso é o IP que está em negrito. O que eu preciso é uma maneira de associar o GUID que eu passei {436EF144-B4FB-4863-A041-8F905A62C572} com o GUID da conexão que foi estabelecida (Podem haver outras conexões estabelecidas), ou outra maneira de obter esse IP.
Obrigado! -
-
Pegar a última conexão é o que eu preciso.
Quando o usuário informa a qual rede ele quer se conectar, até dá pra usar o szDescription, mas o problema é quando ele não especificar (aí tenho que usar o GUID genérico IID_DestNetInternet). O intuito de usar esse GUID IID_DestNetInternet é que a conexão é feita de forma transparente (do mesmo modo quando vc abre o internet explorer no Pocket Pc e ele se conecta a internet automaticamente) sem que o usuário se preocupe em configurar nada. -
-
Eu até tinha pensado em fazer isso, mas não é confiável porque uma outra aplicação pode estabelecer uma conexão neste meio tempo, aí corro o risco de pegar o IP de uma outra conexão!
Este problema está me tirando alguns cabelos. heheh
Valeu! -
Você já tentou usar a OpenNetCF: http://community.opennetcf.com/
Eu usei em diversos projetos, inclusive para conexões GPRS e funciona muito bem. Você trabalha direto no adaptador e assim fica fácil pegar o IP.
[]s,