Android get phone (ios, android) equipment unique code (mac address, IMEI)

 

{

 

/ *
Get phone (ios, android) equipment unique code (mac address, IMEI)
small Feb. 16, 2018 / General / 2697 total words / large size / Comments Off

will always be used in the client app downloads data statistics, the unique code are generally used as the labeling apparatus, the following code snippet is to obtain mac address recorded backup.


Get android mac address


1. <uses-permission android: name = "android.permission.ACCESS_WIFI_STATE">

2. String Private getLocalMacAddress () {

the WifiManager WiFi = (the WifiManager) the getSystemService (Context.WIFI_SERVICE);

WifiInfo wifi.getConnectionInfo info = ( );

return info.getMacAddress ();

}


Android IMEI data acquired


public static String getIMEI (the context context) {

return ((TelephonyManager) context.getSystemService (Context.TELEPHONY_SERVICE)) GetDeviceID ();.

}


iOS obtain mac address


+ (NSString *) getLocalMacAddress

{

int                    mib[6];

size_t                len;

char                *buf;

unsigned char        *ptr;

struct if_msghdr    *ifm;

struct sockaddr_dl    *sdl;

mib[0] = CTL_NET;

mib[1] = AF_ROUTE;

mib[2] = 0;

mib[3] = AF_LINK;

mib[4] = NET_RT_IFLIST;

if ((mib[5] = if_nametoindex("en0")) == 0) {

//printf("Error: if_nametoindex error/n");

return NULL;

}

if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) {

//printf("Error: sysctl, take 1/n");

return NULL;

}

if ((buf = malloc(len)) == NULL) {

//printf("Could not allocate memory. error!/n");

return NULL;

}

if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) {

//printf("Error: sysctl, take 2");

return NULL;

}

ifm = (struct if_msghdr *)buf;

sdl = (struct sockaddr_dl *)(ifm + 1);

ptr = (unsigned char *)LLADDR(sdl);

// NSString *outstring = [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x", *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];

NSString *outstring = [NSString stringWithFormat:@"%02x%02x%02x%02x%02x%02x", *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];

free(buf);

return [outstring uppercaseString];

}

ios获取时候所需包含的头文件

#include<sys/socket.h>

#include<sys/sysctl.h>
#include<net/if.h>
#include <net/if_dl.h>

- (NSString *) macaddress{

   int                mib[6];
   size_t             len;
   char               *buf;
    unsignedchar      *ptr;
    structif_msghdr   *ifm;
    structsockaddr_dl  *sdl;

    mib[0] =CTL_NET;
    mib[1] =AF_ROUTE;
    mib[2] =0;
    mib[3] =AF_LINK;
    mib[4] =NET_RT_IFLIST;

    if ((mib[5]= if_nametoindex("en0")) == 0) {
       printf("Error: if_nametoindex errorn");
       return NULL;
    }

    if(sysctl(mib, 6, NULL, &len, NULL, 0)< 0) {
       printf("Error: sysctl, take 1n");
       return NULL;
    }

    if ((buf =malloc(len)) == NULL) {
       printf("Could not allocate memory. error!n");
       return NULL;
    }

    if(sysctl(mib, 6, buf, &len, NULL, 0)< 0) {
       printf("Error: sysctl, take 2");
       free(buf);
       return NULL;
    }

    ifm =(struct if_msghdr *)buf;
    sdl =(struct sockaddr_dl *)(ifm + 1);
    ptr =(unsigned char *)LLADDR(sdl);
    NSString*outstring = [NSString stringWithFormat:@"X:X:X:X:X:X",
                          *ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)];
   free(buf);

    returnoutstring;
}
- (NSString *)getMacAddress
{
*/

 

}

Guess you like

Origin www.cnblogs.com/YZFHKMS-X/p/12067245.html