获取本地ip方法
2012-10-30 16:52
423 查看
第一步:文件包含下面头文件
#import <ifaddrs.h>
#import <arpa/inet.h>
第二步:获取本地ip的方法
+ (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)];
}
else
if ([[NSString
stringWithUTF8String:temp_addr->ifa_name]
isEqualToString:@"en1"]){
// Get NSString from C String
address = [NSString
stringWithUTF8String:inet_ntoa(((struct
sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
else if
([[NSString
stringWithUTF8String:temp_addr->ifa_name]
isEqualToString:@"lo0"]){
// 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;
}
#import <ifaddrs.h>
#import <arpa/inet.h>
第二步:获取本地ip的方法
+ (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)];
}
else
if ([[NSString
stringWithUTF8String:temp_addr->ifa_name]
isEqualToString:@"en1"]){
// Get NSString from C String
address = [NSString
stringWithUTF8String:inet_ntoa(((struct
sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
else if
([[NSString
stringWithUTF8String:temp_addr->ifa_name]
isEqualToString:@"lo0"]){
// 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 方法
- windows下获取本地IP的方法
- 关于java获取本地ip的几种方法
- Android-->最全获取本地IP的方法(Wifi/以太网/3G)
- Java获取本地服务器Ip的方法
- 共享一个获取本地信息IP,MAC的头文件及其实现方法(更新)
- linux平台下java获取本地ip的方法
- php获取本地ip的多种方法
- 获取本地IP方法
- 总结 asp.net 和 javascript获取本地IP(MAC)和服务器IP(MAC)的方法
- 获取Socket的本地IP端口和远程IP端口的方法(C++)
- android手机获取本地ip为10.2.0.5 的解决方法
- java根据本地IP获取mac地址的方法
- 获取本地ip的方法
- Android系统下获取本地IP和mac地址的方法
- shell获取本地ip的三种方法
- js 获取本地IP方法
- 在windows phone 7上获取本地IP的方法
- 获取socket的本地ip端口和远程ip端口的方法 c++
- as3可能能获取本地IP的几种方法