美文网首页iOS Wi-Fi有关
获取设备的局域网IP

获取设备的局域网IP

作者: wodeph | 来源:发表于2017-06-03 17:27 被阅读0次

    //获取手机的ip

    NSString*ip = [GJWIPHelper    deviceIPAdress];

    //获取IP的.h文件

    #import

    @interfaceGJWIPHelper :NSObject

    + (NSString*)deviceIPAdress;//获取设备局域网中IP地址

    @end

    //获取IP的.m文件

    #import"GJWIPHelper.h"

    #include <ifaddrs.h>

    #include  <arpa/inet.h>

    @implementationGJWIPHelper

    + (NSString*)deviceIPAdress {

    NSString   *address =@"an error occurred when obtaining ip address";

    structifaddrs  *interfaces =NULL;

    structifaddrs   *temp_addr =NULL;

    intsuccess =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([[NSString  stringWithUTF8String:temp_addr->if  a_name]  isEqualToString:@"en0"]) {

    // Get NSString from C String

    address = [NSString     stringWithUTF8String:inet_ntoa(((structsockaddr_in*)temp_addr->ifa_addr)->sin_addr)];

    }

    }

    temp_addr = temp_addr->ifa_next;

    }

    }

    freeifaddrs(interfaces);

    return   address;

    }

    @end

    注:不喜勿喷!!!

    相关文章

      网友评论

        本文标题:获取设备的局域网IP

        本文链接:https://www.haomeiwen.com/subject/klrmfxtx.html