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. iOS AvPlayer AvAudioPlayer音频的后台播放问题

    iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...

  2. 最简单的基于FFMPEG的视频编码器(YUV编码为H.264)

    本文介绍一个最简单的基于FFMPEG的视频编码器.该编码器实现了YUV420P的像素数据编码为H.264的压缩编码数据.编码器代码十分简单,可是每一行代码都非常重要,适合好好研究一下.弄清楚了本代码也 ...

  3. O(1)调度器的时间计算公式与CFS调度器

    http://blog.csdn.net/dog250/article/details/48750809 O(1): 优先级计算: 进程优先级公式:prio=MAX_RT_PRIO+nice+20其中 ...

  4. Hack工具

    黑客工具一般是由黑客或者恶意程序安装到您计算机中,用来盗窃信息.引起系统故障和完全控制电脑的恶意软件程序.同时也指黑客进行黑客任务时使用的工具.著名的有nmap,流光等等. 目录 1 种类 2 恶意程 ...

  5. 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览

    ### 利用Gulp实现JSDoc 3的文档编写过程中的实时解析和效果预览 http://segmentfault.com/a/1190000002583569

  6. ASP.NET+ashx+jQuery动态添加删除表格

    aspx: <script src="../script/jquery-1.4.4.min.js" type="text/javascript" lang ...

  7. jquery判断浏览器版本插件,jquery-browser.js

    jquery判断浏览器版本插件,jquery-browser.js,jquery 判断是否为ie浏览器插件 >>>>>>>>>>>&g ...

  8. less编码规范

    Less 编码规范 简介 因为自己最近写css用的比较多还是less,整理了一份less规范, 代码组织 代码按如下形式按顺序组织: @import 变量声明 样式声明 // ✓ @import &q ...

  9. PHP验证码的制作

    <?phpsession_start();   //??session//?建随机?,并保存在session中for($i=0;$i<4;$i++){$_nmsg.=dechex(mt_r ...

  10. Nico Game Studio 1.基本UI和地图编辑基础功能

    完成了基本界面. 本来想自画UI,但是考虑到工作量较大和美观程度有限,以及工具使用对象是比较初级玩家,处于性价比和最初目的,放弃了自绘.