iOS獲取本地ip(基本通用) – iPhone手機開發技術文章 iPhone軟體開發教學課程

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

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *