iOS获取本地ip(基本通用)

今天有个朋友问我如何访问手机ip,上网找了几个,用了近200多行代码,最后发现头文件用的竟然还是Linux中的,OC没有这个头文件。感觉socket本身应该可以后去自己的ip就试了一下,果然7、8行代码就解决了。这个基本是c的socket,几乎通用,别的平台也可以使用。

- (NSString *)getLocalIP{
    struct sockaddr_in sa;
    socklen_t len = sizeof(sa);
    
    if(getsockname(sockfd, (struct sockaddr *)&sa, &len))
    {
        NSLog(@"获取失败!");
    }
    return [NSString stringWithUTF8String:inet_ntoa(sa.sin_addr)];
}

返回的字符串为本地ip

- (NSString *)getLocalIP{
    socklen_t len = sizeof(serv_addr);
    if(!getpeername(sockfd, (struct sockaddr *)&serv_addr, &len))
    {
        
    }
    NSLog(@"对方IP:%s ", inet_ntoa(serv_addr.sin_addr));
    NSLog(@"对方PORT:%d ", ntohs(serv_addr.sin_port));
    return [NSString stringWithUTF8String:inet_ntoa(serv_addr.sin_addr)];
}
获取对方ip和端口号

iOS获取本地ip(基本通用)_第1张图片

你可能感兴趣的:(iOS)