今天有個朋友問我如何訪問手機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和端口號