今天有个朋友问我如何访问手机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和端口号