我找了一些代码来帮助我获得iphone连接的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 …Run Code Online (Sandbox Code Playgroud) 如何通过单击按钮制作显示您的IP地址的GUI程序?请,没有困难的解释,我不久前刚刚开始了Cocoa.
谢谢,
凯文
我正在尝试找到我的外部IP地址,但我只在NAT后面获得本地IP地址.
NSArray *addresses = [[NSHost currentHost] addresses];
Run Code Online (Sandbox Code Playgroud)
有没有办法打印出公共地址?使用NSHost是个好主意吗?
在我的应用程序中,我需要获取一个NSString对象值等于用户公共/互联网IP地址的值.我试图解决这个问题,但两者都返回本地IP地址而不是公开.以下是我的两种方法.一个更精确,并始终返回数组中的正确项.另一个没有.(因为只选一个随机索引)...
- (NSString *)getPublicIP {
NSHost *publicIP = [[[NSHost currentHost] addresses] objectAtIndex:0];
return publicIP;
}
Run Code Online (Sandbox Code Playgroud)
其他更精确:(但不获得公共IP)
//start get ip
- (NSString *)getIPWithNSHost {
NSArray *addresses = [[NSHost currentHost] addresses];
NSString *stringAddress;
for (NSString *anAddress in addresses) {
if (![anAddress hasPrefix:@"127"] && [[anAddress componentsSeparatedByString:@"."] count] == 4) {
stringAddress = anAddress;
break;
}
else {
stringAddress = @"IPv4 address not available" ;
}
//NSLog(stringAddress);
}
NSLog (@"getIPWithNSHost: stringAddress = %@ ",stringAddress);
stringAddress = (@"getIPWithNSHost: stringAddress = %@ ",stringAddress);
return stringAddress;
} …Run Code Online (Sandbox Code Playgroud) objective-c ×4
cocoa ×2
cocoa-touch ×1
external ×1
ios ×1
ip ×1
ip-address ×1
iphone ×1
xcode ×1