×
Namespaces

Variants
Actions
Revision as of 02:34, 31 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Como recuperar o endereço MAC de um dispositivo WLAN

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Platform Security
Tipo de assinatura requerido: Self-Signed
Capabilities: None

Artigo
Tradução:
Por ivocalado
Última alteração feita por hamishwillee em 31 May 2013

O endereço MAC de um dispositivo WLAN pode ser recuperado utilizando o seguinte código no teclado do dispositivo *#MAC0WLAN# (que é o mesmo que *#62209526#).

É possível também recuperar o endereço MAC de um dispositivo WLAN em dispositivos S60 via programção. Isto pode ser feito através do seguintes trecho de código.

Cabeçalho:

#include <in_sock.h>

Realize a seguinte linkagem:

LIBRARY insock.lib

Capabilities:

CAPABILITY NONE
RSocketServ socketServ;
User::LeaveIfError(socketServ.Connect());
CleanupClosePushL(socketServ);
 
// Open a socket
RSocket socket;
User::LeaveIfError(socket.Open (socketServ,KAfInet,KSockStream,KProtocolInetTcp));
CleanupClosePushL(socket);
 
// Start enumerating the interfaces
TPckgBuf<TSoInetInterfaceInfo> info;
socket.SetOpt(KSoInetEnumInterfaces, KSolInetIfCtrl);
TBuf<32> macAddr;
 
while(socket.GetOpt(KSoInetNextInterface, KSolInetIfCtrl, info) == KErrNone)
{
if(info().iName.FindF(_L("Wlan")) == KErrNotFound)
continue;
 
macAddr.Zero();
for(TUint i = sizeof(SSockAddr) ; i < sizeof(SSockAddr) + 6 ; i++)
if(i < (TUint)info().iHwAddr.Length())
macAddr.AppendFormat(_L("%02X:"), info().iHwAddr[i] );
 
if(macAddr.Length()) // remove trailing ':'
macAddr.Delete(macAddr.Length()-1, 1);
}
CleanupStack::PopAndDestroy(2);

No entanto a forma de recuperação do endreço MAC apresentada acima funciona apenas se o dispositivo estiver conectado a uma WLAN. Para descobrir o endereço MAC mesmo que o dispositivo WLAN não esteja conectado, veja as alternativas abaixo (aplicável para todos os dispositivos S60) 3rd Edition e dispositivos S60 3rd Edition Feature Pack 1):


Este método faz uso alternativamente das chaves Publish & Subscribe para recuperar o endereço MAC quando a WLAN estiver desabilitada.

A API WLAN Info, uma parte do pacotes de extensões para a dispositivos S60 3rd Edition, Feature Pack 1 SDK, contem as chaves Publish & Subscribe com o endereço MAC para a interface WLAN.

O cabeçalho wlaninternalpskeys.h contem as informações de chave e categoria de Publish & Subscribe requeridas:

const TUid KPSUidWlan = { 0x101f8ec5 };
const TUint KPSWlanMacAddress = 0x00000001;
const RProperty::TType KPSWlanMacAddressType = RProperty::EByteArray;
This page was last modified on 31 May 2013, at 02:34.
98 page views in the last 30 days.
×