iOS 获取手机的ip地址 并传给后台(三步搞定)
来源:互联网 发布:中银淘宝校园卡 编辑:程序博客网 时间:2024/05/18 02:34
第一步 创建一个NSObject 文件
.h 文件 写
#import <Foundation/Foundation.h>
@interface NSObject (GetIP)
+ (NSString *)deviceIPAdress;
@end
.m文件 写
#import "NSObject+GetIP.h"
#include <ifaddrs.h>
#include <arpa/inet.h>
@implementation NSObject (GetIP)
//必须在有网的情况下才能获取手机的IP地址
+ (NSString *)deviceIPAdress {
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 ([[NSStringstringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"]) {
// Get NSString from C String
address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
}
temp_addr = temp_addr->ifa_next;
}
}
freeifaddrs(interfaces);
NSLog(@"%@", address);
return address;
}
@end
#import "NSObject+GetIP.h"
#include <ifaddrs.h>
#include <arpa/inet.h>
#include <net/if.h>
#define IOS_CELLULAR @"pdp_ip0"
#define IOS_WIFI @"en0"
#define IOS_VPN @"utun0"
#define IP_ADDR_IPv4 @"ipv4"
#define IP_ADDR_IPv6 @"ipv6"
第三步 在你写给后台的网络请求里写入
NSString *StringIP = [NSStringdeviceIPAdress]; //调用方法 获取ip地址 赋值给字符串 stringIP
[params setObject:StringIPforKey:@"ipNum"]; //把ip 地址对应后台提供的参数 传给后台
- iOS 获取手机的ip地址 并传给后台(三步搞定)
- 使用python获取动态分配的ip地址并传给shell
- iOS怎样获取手机的ip地址
- iOS获取手机的IP地址
- iOS 获取手机的ip地址
- iOS 获取手机ip地址
- iOS 获取手机IP地址
- iOS 获取手机IP地址
- ios获取手机IP地址
- 获取手机的ip地址
- iOS 获取手机设备IP地址的两种方法
- iOS 获取手机设备IP地址的两种方法
- ios获取手机的ip
- 获取手机ip地址
- 获取手机ip地址
- 获取手机IP地址
- 获取手机ip地址
- 获取手机Ip地址
- Java office在线预览实现--openoffice
- VS2010静态编译生成.exe可执行文件,使c++程序脱离VS环境运行
- 修改maven打包出来的war名称
- PHP设计模式系列 - 数据访问对象模式
- ORACLE 错误编码收集
- iOS 获取手机的ip地址 并传给后台(三步搞定)
- 【解决】error: revision cm-13.0 in platform/developers/build not found
- Ajax跨域请求
- 脚本调用ssh后出现Pseudo-terminal will not be allocated because stdin is not a terminal
- AJAX利用Jsonp进行跨域对MVC项目访问
- CopyOnWrite容器
- 文章标题
- sas
- Android动画框架(三)----布局动画&Activity过渡动画