SGMSettingConfig.h

#import <Foundation/Foundation.h>

@interface SGMSettingConfig : NSObject{

NSInteger HTTP_PACKAGE_SIZE;

NSInteger HTTP_RETRY_TIMES;

NSInteger REPLY_LENGTH;

NSInteger MAX_AUDIO_TIME;

NSInteger MAX_RESULT_AMOUNT;

BOOL USE_DENOISE_AGC;

NSInteger API_VERSION;

}

@property(nonatomic) NSInteger HTTP_PACKAGE_SIZE;

@property(nonatomic) NSInteger HTTP_RETRY_TIMES;

@property(nonatomic) NSInteger REPLY_LENGTH;

@property(nonatomic) NSInteger MAX_AUDIO_TIME;

@property(nonatomic) NSInteger MAX_RESULT_AMOUNT;

@property(nonatomic) BOOL USE_DENOISE_AGC;

@property(nonatomic) NSInteger API_VERSION;

//获取设备MAC地址

-(NSString *)macAddress;

//给定信息进行MD5

-(NSString *)getMD5:(NSString *)paramStr;

//给设备MAC地址进行MD5加密

-(NSString *)macMD5;

@end

SGMSettingConfig.m

#import "SGMSettingConfig.h"

#import <CommonCrypto/CommonDigest.h>

#include <sys/socket.h>

#include <sys/sysctl.h>

#include <net/if.h>

#include <net/if_dl.h>

@implementation SGMSettingConfig

@synthesize HTTP_PACKAGE_SIZE;

@synthesize HTTP_RETRY_TIMES;

@synthesize REPLY_LENGTH;

@synthesize MAX_AUDIO_TIME;

@synthesize MAX_RESULT_AMOUNT;

@synthesize USE_DENOISE_AGC;

@synthesize API_VERSION;

-(id)init{

if(self = [super init]){

HTTP_PACKAGE_SIZE = 3000;

HTTP_RETRY_TIMES = 2;

REPLY_LENGTH = 2600;

MAX_AUDIO_TIME = 30;

MAX_RESULT_AMOUNT = 5;

USE_DENOISE_AGC = false;

API_VERSION = 1000;

}

returnself;

}

//获取设备MAC地址

-(NSString *)macAddress{

//Get MAC Address as unique identifier

int mib[6];

size_t len;

char *buf;

unsignedchar *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)

returnnil;  //Error:if_nametoindex error

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

returnnil;  //Error:sysctl, take 1

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

returnnil;  //Could not allocate memory. error!

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

free(buf);

returnnil;  //Error:sysctl, take 2

}

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)];

free(buf);

return [outString uppercaseString];

}

//给定信息进行MD5

-(NSString *)getMD5:(NSString *)paramStr{

const char *cStr = [paramStr UTF8String];

unsigned char result[16];

CC_MD5(cStr, strlen(cStr), result);

/*

//获取全部加密MD5值

NSString *md5Str = [NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",result[0],result[1],result[2],result[3],result[4],result[5],result[6],result[7],result[8],result[9],result[10],result[11],result[12],result[13],result[14],result[15]];

return [md5Str substringFromIndex:12];//从第12个元素开始取值,取后4个值(12-15)

*/

NSString *md5Str = [NSString stringWithFormat:@"%02X%02X%02X%02X",result[12],result[13],result[14],result[15]];

return md5Str;

}

//给设备MAC地址进行MD5加密

-(NSString *)macMD5{

NSString *paramStr = [self macAddress];

return [self getMD5:paramStr];

}

- (void)dealloc

{

[super dealloc];

}

@end

获取设备mac地址和md5加密的更多相关文章

  1. Android 获取手机Mac地址,手机名称

    /** * 获取手机mac地址<br/> * 错误返回12个0 */ public static String getMacAddress(Context context) { // 获取 ...

  2. Python 获取 网卡 MAC 地址

    /*********************************************************************** * Python 获取 网卡 MAC 地址 * 说明: ...

  3. js获取客户端MAC地址

    最近遇到一个需求,医院要求呼叫中心账号必须对应MAC地址,也就是说该MAC地址必须和呼叫中心账号对应才可使用,这可就难道我了,这需求就要求每次都判断用户登录的电脑MAC地址是否有呼叫中心账号,当然只针 ...

  4. js 获取客户端mac地址

    js 获取客户端mac地址 javascript获取客户端网卡MAC地址和IP地址和计算机名 nodesj如何获得客户端的mac地址呢? 浏览器获取MAC地址 不限浏览器的mac地址取得的几种办法 I ...

  5. java 通过ip获取客户端mac地址

    java 通过ip获取客户端mac地址 package com.asppro.util; import java.io.BufferedReader; import java.io.IOExcepti ...

  6. 解决Android 6.0获取wifi Mac地址为02:00:00:00:00:00问题【转】

    本文转载自:http://www.jb51.net/article/128398.htm 这篇文章主要介绍了Android 6.0获取wifi Mac地址为02:00:00:00:00:00的解决方法 ...

  7. PowerBulider获取计算机mac地址

    PowerBulider获取计算机mac地址 1.下载GETNET.DLL获取网络资源的API 2.PB的全局函数中的引入需要API,常用API列表如下 //得到计算机名字 function bool ...

  8. 获取客户端Mac地址

    近期有个需求,需要获取客户端Mac地址作为白名单验证的依据.使用.net,B/S架构.先百度找了一些获取mac地址的方法, using System; using System.Collections ...

  9. 在安卓6.0(及以上)设备上无法获取无线网卡MAC地址的解决方案

    在安卓6.0以下的设备上,通过WifiManager.getConnectionInfo().getMacAddress()即可获取WLAN物理地址, 而在6.0及以上,以此方式获取到的MAC地址为固 ...

随机推荐

  1. 在内核外编写的linux驱动程序MAKEFILE

    一般都是这么写: ifneq ($(KERNELRELEASE),) obj-m :=  else KERNELDIR ?= /lib/modules/$(shell uname -r)/build ...

  2. android 73 下载图片

    package com.ithiema.imageviewer; import java.io.InputStream; import java.net.HttpURLConnection; impo ...

  3. bash if 表达式

    .bash把[[ $a -lt $b ]]看作一个单独的元素,并且返回一个退出码.退出码0为真,非零为假 例如: a= b=c [[ $a -lt $b ]] echo $? # a小于b为真 [[ ...

  4. N!末尾有多少个零

    题目一:210!最后结果有几个零. 请自己思索10分钟以上再看解释 凡是这种题目必有规律可言, 关键是你找到这个规律的恒心.可采用笨拙的方法思考. 1!  =  1                   ...

  5. Linux下搭建Oracle11g RAC(6)----安装Grid Infrastructure

    从此步骤开始,我们正式安装Grid软件: ① 以grid用户登录图形界面,执行/home/grid/grid/runInstaller,进入OUI的图形安装界面: ② 进入OUI安装界面后,选择第3项 ...

  6. 查询语句,按照时间排序,取前N条

    mysql: SELECT * from  (SELECT H_TEMPERATURE,TH_TIME FROM wenshidu  WHERE TH_TIME <= STR_TO_DATE(' ...

  7. 为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了

    为什么每个请求都要有用户名密码呢,那不是每次都要查询一下了,token,表示这个用户已经验证通过了,在token有效期内,只需要判断token是否有效就可以了

  8. 局域网之php项目IP访问共享

    局域网之php本地项目共享 该文章主要介绍本地php项目在局域网内的共享访问,主要体现为通过本地ip地址访问项目 做法如下: 1.更改本地盘host文件(winds目录为:C:\Windows\Sys ...

  9. virtualbox共享文件夹无访问权限问题解决方法

    virtualbox共享文件夹无访问权限问题解决方法 早就困扰了,这次新装虚拟机又碰到了,记录下来. 这篇文章主要介绍了virtualbox共享文件夹无访问权限问题解决方法,造成这个问题的原因是不跟v ...

  10. Java--获取request中所有参数的方法

    我们通常用到request获取某个参数的方法: String value=request.getparameter("key"); 如果想要获取request中所有的参数呢? re ...