/**

*  获取用户ip

*

*  @return 获取用户ip

*/

+ (NSString *)getIPAddress

{

NSString *address = @"an error occurred when obtaining ip address";

struct ifaddrs *interfaces = NULL;

struct ifaddrs *temp_addr = NULL;

int success = 0;

success = getifaddrs(&interfaces);

if (success == 0) { // 0 表示获取成功

temp_addr = interfaces;

while (temp_addr != NULL) {

if( temp_addr->ifa_addr->sa_family == AF_INET) {

// Check if interface is en0 which is the wifi connection on the iPhone

if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {

// Get NSString from C String

address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];

}

}

temp_addr = temp_addr->ifa_next;

}

}

freeifaddrs(interfaces);

NSLog(@"手机的IP是:%@", address);

return address;

}

/**

 *  判断手机型号

*

*  @return 返回手机型号

*/

+ (NSString *)deviceString

{

struct utsname systemInfo;

uname(&systemInfo);

NSString *deviceString = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];

if ([deviceString isEqualToString:@"iPhone1,1"])    return @"iPhone 1G";

if ([deviceString isEqualToString:@"iPhone1,2"])    return @"iPhone 3G";

if ([deviceString isEqualToString:@"iPhone2,1"])    return @"iPhone 3GS";

if ([deviceString isEqualToString:@"iPhone3,1"])    return @"iPhone 4";

if ([deviceString isEqualToString:@"iPhone3,3"])    return @"Verizon iPhone 4";

if ([deviceString isEqualToString:@"iPhone4,1"])    return @"iPhone 4S";

if ([deviceString isEqualToString:@"iPhone5,1"])    return @"iPhone 5 (GSM)";

if ([deviceString isEqualToString:@"iPhone5,2"])    return @"iPhone 5 (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPhone5,3"])    return @"iPhone 5c (GSM)";

if ([deviceString isEqualToString:@"iPhone5,4"])    return @"iPhone 5c (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPhone6,1"])    return @"iPhone 5s (GSM)";

if ([deviceString isEqualToString:@"iPhone6,2"])    return @"iPhone 5s (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPhone7,2"])    return @"iPhone 6";

if ([deviceString isEqualToString:@"iPhone7,1"])    return @"iPhone 6 Plus";

if ([deviceString isEqualToString:@"iPod1,1"])      return @"iPod Touch 1G";

if ([deviceString isEqualToString:@"iPod2,1"])      return @"iPod Touch 2G";

if ([deviceString isEqualToString:@"iPod3,1"])      return @"iPod Touch 3G";

if ([deviceString isEqualToString:@"iPod4,1"])      return @"iPod Touch 4G";

if ([deviceString isEqualToString:@"iPod5,1"])      return @"iPod Touch 5G";

if ([deviceString isEqualToString:@"iPad1,1"])      return @"iPad";

if ([deviceString isEqualToString:@"iPad2,1"])      return @"iPad 2 (WiFi)";

if ([deviceString isEqualToString:@"iPad2,2"])      return @"iPad 2 (GSM)";

if ([deviceString isEqualToString:@"iPad2,3"])      return @"iPad 2 (CDMA)";

if ([deviceString isEqualToString:@"iPad2,4"])      return @"iPad 2 (WiFi)";

if ([deviceString isEqualToString:@"iPad2,5"])      return @"iPad Mini (WiFi)";

if ([deviceString isEqualToString:@"iPad2,6"])      return @"iPad Mini (GSM)";

if ([deviceString isEqualToString:@"iPad2,7"])      return @"iPad Mini (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPad3,1"])      return @"iPad 3 (WiFi)";

if ([deviceString isEqualToString:@"iPad3,2"])      return @"iPad 3 (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPad3,3"])      return @"iPad 3 (GSM)";

if ([deviceString isEqualToString:@"iPad3,4"])      return @"iPad 4 (WiFi)";

if ([deviceString isEqualToString:@"iPad3,5"])      return @"iPad 4 (GSM)";

if ([deviceString isEqualToString:@"iPad3,6"])      return @"iPad 4 (GSM+CDMA)";

if ([deviceString isEqualToString:@"iPad4,1"])      return @"iPad Air (WiFi)";

if ([deviceString isEqualToString:@"iPad4,2"])      return @"iPad Air (Cellular)";

if ([deviceString isEqualToString:@"iPad4,3"])      return @"iPad Air";

if ([deviceString isEqualToString:@"iPad4,4"])      return @"iPad Mini 2G (WiFi)";

if ([deviceString isEqualToString:@"iPad4,5"])      return @"iPad Mini 2G (Cellular)";

if ([deviceString isEqualToString:@"iPad4,6"])      return @"iPad Mini 2G";

if ([deviceString isEqualToString:@"iPad4,7"])      return @"iPad Mini 3 (WiFi)";

if ([deviceString isEqualToString:@"iPad4,8"])      return @"iPad Mini 3 (Cellular)";

if ([deviceString isEqualToString:@"iPad4,9"])      return @"iPad Mini 3 (China)";

if ([deviceString isEqualToString:@"iPad5,3"])      return @"iPad Air 2 (WiFi)";

if ([deviceString isEqualToString:@"iPad5,4"])      return @"iPad Air 2 (Cellular)";

if ([deviceString isEqualToString:@"AppleTV2,1"])  return @"Apple TV 2G";

if ([deviceString isEqualToString:@"AppleTV3,1"])  return @"Apple TV 3";

if ([deviceString isEqualToString:@"AppleTV3,2"])  return @"Apple TV 3 (2013)";

if ([deviceString isEqualToString:@"i386"])        return @"Simulator";

if ([deviceString isEqualToString:@"x86_64"])      return @"Simulator";

NSLog(@"NOTE: Unknown device type: %@", deviceString);

return deviceString;

}

获取手机 IP的更多相关文章

  1. 微信小程序开发(八)获取手机ip地址

    // succ.wxml <view>手机IP:{{motto.query}}</view> // succ.js var app = getApp() Page({ data ...

  2. Xamarin.Android 获取手机IP地址

    命名空间: using System.Net; 代码: IPAddress[] address = Dns.GetHostAddresses(Dns.GetHostName()); ] != null ...

  3. 获取手机IMEI 号和 IP

    没什么可说的,直接上代码: public class PhoneStateCodeUtils { /** * 获取手机imei串号 */ public static String getImei(Co ...

  4. 获取手机浏览器IP的函数

    function GetIP() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { //如果变量是非空或非零的值,则 empty()返回 FALSE. $IP = ...

  5. Android 手机上获取手机当前上网IP地址

      [转] 原文              Android 手机上获取手机当前上网IP地址                (手机网关给手机号分配的IP) 每个手机上网通过移动网关的时候,网关都会给该手 ...

  6. 获取手机 id 与 ip

    //id #import <AdSupport/AdSupport.h> //ip #include <ifaddrs.h> #include <arpa/inet.h& ...

  7. PHP获取手机相关信息

    该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获 ...

  8. 拿到手机ip住址

    转载自:http://blog.csdn.net/showhilllee/article/details/8746114 貌似ASI里获取ip地址的链接不能够了.也曾试过whatismyip,在其站点 ...

  9. Android-------------获取手机IP地址

    ##帮助类PhoneNetStateUtil package com.funs.PhoneIPAddress.utils; /**      * 手机联网状态工具类 需要的权限 WIFI时:</ ...

随机推荐

  1. Spring 使用context:annotation-config的设置

    Spring 使用context:annotation-config的设置: 还是需要声明Bean的,并且还可能自己定义Annotation: xml: <?xml version=" ...

  2. margin三个值

    http://www.cnblogs.com/wangkongming/p/3204734.html margin标记可以带一个.二个.三个.四个参数,各有不同的含义. margin: 20px;(上 ...

  3. {}typeof string转为 obj json

    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.11.3/jquer ...

  4. Kubuntu定制开始菜单

    在我旧的博客(http://blog.sina.com.cn/eltaera)里,曾经转载过关于ubuntu定制的文章(http://blog.sina.com.cn/s/blog_8709e3120 ...

  5. (二)Lua脚本语言入门

    上一篇文章忘了插入代码了,方便粘贴复制...... 函数 对于c语言就是 void aa()//c语言是用void { print("这是一个函数") } Lua就变成了 func ...

  6. ADO.NET 数据库操作类

    操作数据类 避免代码重用.造对象太多.不能分工开发 利用面向对象的方法,把数据访问的方式优化一下,利用封装类   一般封装成三个类: 1.数据连接类 提供数据连接对象 需要引用命名空间: using ...

  7. gcc 简单编译流程

    注意:GCC在链接时优先使用动态链接库,只有当动态链接库不存在时才考虑使用静态链接库,可在编译时加上-static选项,强制使用静态链接库. gcc -static  此选项将禁止使用动态库,所以,编 ...

  8. VS中生成debug和release的小问题

    vs里生成dll,需要在解决方案上右键"属性",然后"配置",点击右上角"配置管理器(0)",选择debug或release,方可生效.不然 ...

  9. sonarqube+Scanner代码质量管理工具

    本文相关描述基于sonarqube 6.2版本. 下载地址: sonarqube下载网址:https://www.sonarqube.org/downloads/ Scanner下载网址(用于扫描项目 ...

  10. matlab中axis的使用

    % 提示 disp ('该功能练习axis功能'); %初始化快捷式数组 x=-*pi:pi/:*pi; y=sin(x); plot(x,y); title('sin(x)图形'); grid on ...