通过编程查找通过电缆连接iOS设备的MacBook的IP

通过编程查找通过电缆连接iOS设备的MacBook的IP,ios,objective-c,Ios,Objective C,当iOS设备通过USB电缆连接到MacBook时,iOS设备上运行的应用程序是否有任何编程方式来发现MacBook的IP地址? 这样就可以在iOS设备和运行在笔记本电脑上的服务器之间建立套接字连接。将此方法放入您的类中&您可以获得当前设备的IP地址 // get the IP address of current-device - (NSString *)getIPAddress { NSString *address = @"error"; struct ifaddrs *in

当iOS设备通过USB电缆连接到MacBook时,iOS设备上运行的应用程序是否有任何编程方式来发现MacBook的IP地址?
这样就可以在iOS设备和运行在笔记本电脑上的服务器之间建立套接字连接。

将此方法放入您的类中&您可以获得当前设备的IP地址

// get the IP address of current-device
- (NSString *)getIPAddress {
    NSString *address = @"error";
    struct ifaddrs *interfaces = NULL;
    struct ifaddrs *temp_addr = NULL;
    int success = 0;
    // retrieve the current interfaces - returns 0 on success
    success = getifaddrs(&interfaces);
    if (success == 0) {
        // Loop through linked list of interfaces
        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->ifa_name] isEqualToString:@"en0"]) {
                    // Get NSString from C String
                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
                }
            }
            temp_addr = temp_addr->ifa_next;
        }
    }
    freeifaddrs(interfaces);
    return address;
}

它们之间的USB链路上的IP地址?我甚至不确定在所有情况下都有一个,我相信只有当拴系(个人热点)处于活动状态时才有一个

如果你指的是Wi-Fi或以太网上Mac的IP地址,那么不能保证两台设备实际上都在同一个网络上(你可以在NAT后面的本地LAN上安装Mac,而iPhone则在不同NAT后面的移动网络上),这会造成通信问题(然后会出现通常的P2P NAT穿越问题,这反过来又需要外部服务器)

如果你真的想让设备通过网络(而不是通过USB电缆)相互通信,你可能应该研究一下(这要求两个设备都在同一个网络上)或更新的框架(我认为,在需要时,它甚至可以建立点对点Wi-Fi网络)


如果你真的想通过电缆进行通信,你最好通过/与设备通话,它可以提供与iOS设备上的端口的通信。不过请注意,这与Mac上的应用程序与iOS设备上的服务器应用程序通话有关,而不是相反。

我正在寻找iOS设备上的应用程序iOS设备能够检索MacBook的IP地址。这将获取本地IP地址。谢谢。是的,我指的是“Wi-Fi上Mac的IP地址”。两台设备都在同一个WiFi网络上。我想这听起来好像不可能像你说的那样从iPhone->MacBook上实现。我希望通过WiFi连接而不是USB电缆进行通信。你需要真正识别通过USB电缆连接的Mac吗?在这种情况下,让你的应用程序在端口上监听,然后通过USB电缆与应用程序通话usbmuxd,将其地址发送到应用程序(或您可以通过Bonjour查找的名称)。您可以找到多种方法来执行此操作。或者,如果您不在乎是哪一种,只需使用Bonjour来发现服务器。不确定是否有方法识别通过其他方式连接到设备的Mac。