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. HDU 1124 Factorial (数论)

    http://acm.hdu.edu.cn/showproblem.php? pid=1124 題目好長好長,好可怕,看完腎都萎了,以後肯定活不長.我可不能死在這種小事上,小灰灰我勵志死在少女的超短裙 ...

  2. view中的setTag和getTag方法的理解

    下面是一段自定义适配器中的getView方法,其中使用了view的一个setTag和getTag方法 View中的setTag(Onbect)表示给View添加一个格外的数据(相当于缓存),以后可以用 ...

  3. webservice 生成代理类

    webservice的调用方式有两种: 1. 直接在vs ide中通过web引用的方式,将发布于某个位置的web服务引进到工程里面.这种方式基本上会用vs.net的人都会.   2. 通过vs 命令提 ...

  4. Tomcat的server.xml(中文版)

    原文地址: http://www.blogjava.net/ranxiang/articles/23145.html <!-- Example Server Configuration File ...

  5. Bash中的$符号

    脚本名称:$0 PID:$$ 参数个数:$# 脚本返回值:$? 第x个参数:$x 第10个以上的参数加大括号:${10} 所有参数:$@ #!/bin/bash echo "The prog ...

  6. 24、Javascript BOM

    BOM(Browser Object Model)浏览器对象模型,一组浏览器提供的API. window对象 window对象表示当前浏览器的窗口,是Javascript的顶级对象,所有创建的对象.函 ...

  7. 初识 .NET平台下作业调度器——Quartz.NET

    Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不牺牲 ...

  8. [C# 基础知识系列]专题一:深入解析委托——C#中为什么要引入委托

    转自http://www.cnblogs.com/zhili/archive/2012/10/22/Delegate.html 引言: 对于一些刚接触C# 不久的朋友可能会对C#中一些基本特性理解的不 ...

  9. 判断用户输入是否为int整型方法之一!

    ; string vv = this.textBox2.Text; if (int.TryParse(vv, out age)) { age = int.Parse(this.textBox2.Tex ...

  10. ios专题 - CocoaPods - 初次体验

    [原创]http://www.cnblogs.com/luoguoqiang1985 这CocoaPods怎么用呢? 参考官方文章:guides.cocoapods.org/using/using-c ...