Last active
December 27, 2015 10:09
-
-
Save maju6406/7309000 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_6_0 | |
#import <AdSupport/AdSupport.h> | |
#endif | |
#include <sys/socket.h> | |
#include <sys/sysctl.h> | |
#include <net/if.h> | |
#include <net/if_dl.h> | |
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) | |
- (NSString*)getTapjoyDeviceID | |
{ | |
NSString *deviceid = @""; | |
if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) | |
{ | |
NSLog(@"DEVICE ID - advertising ID"); | |
deviceid = [self getAdvID]; | |
} | |
else | |
{ | |
NSLog(@"DEVICE ID - macaddress"); | |
deviceid = [self getMACID]; | |
} | |
return deviceid; | |
} | |
- (NSString*)getAdvID | |
{ | |
NSString *advID = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]; | |
advID = [advID stringByReplacingOccurrencesOfString:@"-" withString:@""]; | |
advID = [advID lowercaseString]; | |
return advID; | |
} | |
- (NSString*)getMACAddress | |
{ | |
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) | |
{ | |
NSLog(@"Error: if_nametoindex error\n"); | |
return NULL; | |
} | |
if (sysctl(mib, 6, NULL, &len, NULL, 0) < 0) | |
{ | |
NSLog(@"Error: sysctl, take 1\n"); | |
return NULL; | |
} | |
if ((buf = malloc(len)) == NULL) | |
{ | |
NSLog(@"Could not allocate memory. error!\n"); | |
return NULL; | |
} | |
if (sysctl(mib, 6, buf, &len, NULL, 0) < 0) | |
{ | |
NSLog(@"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 *macAddress = [NSString stringWithFormat:@"%02X:%02X:%02X:%02X:%02X:%02X", | |
*ptr, *(ptr+1), *(ptr+2), *(ptr+3), *(ptr+4), *(ptr+5)]; | |
macAddress = [macAddress lowercaseString]; | |
free(buf); | |
return macAddress; | |
} | |
- (NSString*)getMACID | |
{ | |
NSString *macID = [[self getMACAddress] stringByReplacingOccurrencesOfString:@":" withString:@""]; | |
return macID; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment