iOS 获取用户ip地址
2016-02-22 13:49
525 查看
引入系统库
调用方法即可
#include <ifaddrs.h>
#include <arpa/inet.h>
+ (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 访问式获取
+ (NSString *)getIP {
NSError *error;
NSURL *ipURL = [NSURL URLWithString:@"http://ifconfig.me/ip"];
NSString *ip = [NSString stringWithContentsOfURL:ipURL encoding:NSUTF8StringEncoding error:&error];
return ip;
}
调用方法即可
#include <ifaddrs.h>
#include <arpa/inet.h>
+ (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 访问式获取
+ (NSString *)getIP {
NSError *error;
NSURL *ipURL = [NSURL URLWithString:@"http://ifconfig.me/ip"];
NSString *ip = [NSString stringWithContentsOfURL:ipURL encoding:NSUTF8StringEncoding error:&error];
return ip;
}
相关文章推荐
- IOS开发者证书申请及应用上线发布详解(2014版)
- iOS开发多线程篇—GCD介绍
- Nagios监控配置
- iOS/OS X 内存管理(二):借助工具解决内存问题
- iOS/OS X内存管理(一):基本概念与原理
- IOS开发知识(十三)
- 关于ios 推送功能的终极解决
- IOS开发知识(十二)
- IOS开发知识(十一)
- IOS开发知识(十)
- IOS 8弃用api
- iOS App集成Apple Pay教程(附示例代码)
- iOS小明开发笔记(三) (cocoaPod的简单使用)
- iOS-图片上传(第三方服务器)实现图片的上传和获取
- iOS小明开发笔记(二) (地图定位之官方API)
- iOS 获取手机型号(iPhone 8 、iPhone 8 Plus、iPhone X)
- web与Navtive 交互—iOS
- ios iOS中数字的格式化 NSNumberFormatter
- iOS-多线程开发学习(一)
- 仿ios时间,日期选择和三级联动控件