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. Thanks for all your past and future contributions.

Revision as of 20:20, 10 September 2009 by FireSwarog (Talk | contribs)

How to get MAC address of a WLAN device

From Wiki
Jump to: navigation, search

The MAC address of a WLAN device can be retrieved by the code *#MAC0WLAN# on the standby screen (that's same as *#62209526#).

We can get the MAC address of a S60 WLAN device programmatically as well. This can be done by the following code snippet.


#include <in_sock.h>

Link against:

LIBRARY insock.lib


RSocketServ socketServ;
// Open a socket
RSocket socket;
User::LeaveIfError(socket.Open (socketServ,KAfInet,KSockStream,KProtocolInetTcp));
// 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)
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);

However, the above MAC address retrieval code works only when your phone is connected to a WLAN. To find out the MAC address even with WLAN turned off, see the below alternative solution (applies to all S60 3rd Edition devices and S60 3rd Edition Feature Pack 1 devices):

This alternatively method uses the Publish & Subscribe keys to retrieve the MAC address when the WLAN is turned off.

WLAN Info API, a part of the Extensions plug-in package for S60 3rd Edition, Feature Pack 1 SDK, contains Publish & Subscribe keys with a MAC address for the WLAN interface.

The wlaninternalpskeys.h header file contains the required Publish & Subscribe category and key information:

const TUid KPSUidWlan = { 0x101f8ec5 };
const TUint KPSWlanMacAddress = 0x00000001;
const RProperty::TType KPSWlanMacAddressType = RProperty::EByteArray;
602 page views in the last 30 days.