Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Como recuperar o endereço MAC de um dispositivo WLAN

From 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 30 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 30 May 2013, at 23:34.
214 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×