获取苹果设备联网时的IP地址
2016-01-15 14:14
375 查看
在类中导入头文件
#import <ifaddrs.h>
#import <arpa/inet.h>
然后再把下面的方法粘到类中
#pragma mark 获取设备IP地址的方法
// Get IP Address
-(NSString*)getIPAddress
{
NSString *address=@"error";
struct ifaddrs *interfaces=NULL;
struct ifaddrs *temp_addr=NULL;
int success=0;
// retrieve the current interfaces - returns 0 on success
success=getifaddrs(&interfaces);
if(success==0)
{
// Loop through linked list of interfaces
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;
}
}
// Free memory
freeifaddrs(interfaces);
return address;
}
获取IP时记得判断一下返回的值是否为空,据我了解当手机连接的不是Wi-Fi返回的结果值是空的
#import <ifaddrs.h>
#import <arpa/inet.h>
然后再把下面的方法粘到类中
#pragma mark 获取设备IP地址的方法
// Get IP Address
-(NSString*)getIPAddress
{
NSString *address=@"error";
struct ifaddrs *interfaces=NULL;
struct ifaddrs *temp_addr=NULL;
int success=0;
// retrieve the current interfaces - returns 0 on success
success=getifaddrs(&interfaces);
if(success==0)
{
// Loop through linked list of interfaces
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;
}
}
// Free memory
freeifaddrs(interfaces);
return address;
}
获取IP时记得判断一下返回的值是否为空,据我了解当手机连接的不是Wi-Fi返回的结果值是空的
相关文章推荐
- C++ Primer plus第6版第10章学习笔记
- Zend Studio 12 安装及破解
- 网站字符编码
- java 后台 如何实现 谷歌 消息推送
- Android LruCache 缓存 类 源码 注解 分析
- printk 优点
- 使用unity进行测试驱动开发的方法
- iOS汉字转拼音
- log4j
- solaris 开发记录系列一--iconv支持
- 程序设计语言分类
- ImageLoader加载图片
- 安卓人脸识别部分代码
- boost学习2.3:progress_timer类(继承自timer)
- spring整合Hibernate事务不能自动回滚
- FutureTask的用法
- Oracle中的DDL,DML,DCL总结
- rsync上传文件bash脚本
- expect安装测试-自动登陆脚本
- 安装iftop,遇到包不全怎么办