/**

*  获取用户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. jQuery css,position,offset,scrollTop,scrollLeft用法

    jQuery css,position,offset,scrollTop,scrollLeft用法: <%@ page language="java" import=&quo ...

  2. jQuery children等筛选用法

    jQuery children等筛选用法: <%@ page language="java" import="java.util.*" pageEncod ...

  3. H.264转码加速:NVENC大战Quick Sync

    GPU加速技术对普通消费者最直观的影响就是视频转码应用上了,NVIDIA..AMD以及Intel都有自己的加速技术,而在新一代CPU和GPU架构上,三方都有更新的技术方案.<br>< ...

  4. java操作redis redis连接池

    redis作为缓存型数据库,越来越受到大家的欢迎,这里简单介绍一下java如何操作redis. 1.java连接redis java通过需要jedis的jar包获取Jedis连接. jedis-2.8 ...

  5. Centos6.5 mysql折腾记

    1.yum安装mysql [root@localhost ~]# yum -y install mysql-server 安装结果 Installed: mysql-server.x86_64 0:5 ...

  6. MySQL管理命令

    1.验证MySQL安装 在成功安装Mysql后,一些基础表会表初始化,在服务器启动后,你可以通过简单的测试来验证Mysql是否工作正常. 使用 mysqladmin 工具来获取服务器状态: 使用 my ...

  7. linux下读取系统内存的demo

    #include <stdio.h> #define KIBIBYTE_SIZE 1024LL #define MEBIBYTE_SIZE 1048576LL #define GIBIBY ...

  8. link js重构心得

    过年前后一段时间,对link库的代码进行的大量的重构,代码精简了许多,性能也得到了很大的改善,写此文记录期间所做的改进和重构,希望对看到此文的js程序员有所帮助. 1. 代码构建 最初代码使用gulp ...

  9. svg学习之旅(1)

    Canvas 与 SVG 的比较 下表列出了 canvas 与 SVG 之间的一些不同之处. Canvas 依赖分辨率 不支持事件处理器 弱的文本渲染能力 能够以 .png 或 .jpg 格式保存结果 ...

  10. 使用T4模板生成POCO类

    为什么叫T4?因为简写为4个T. T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visua ...