【问题标题】:Is there a way to get the ip address from given url in Cocoa?有没有办法从 Cocoa 中的给定 url 获取 ip 地址?
【发布时间】:2011-07-25 06:55:26
【问题描述】:

给定一个 URL,例如:https://dl.google.com/chrome/mac/stable/GGRM/googlechrome.dmg, 如何在 Cocoa 框架或 Objective-C 方法中获取 IP 地址,例如74.125.224.140

【问题讨论】:

    标签: objective-c cocoa ip-address


    【解决方案1】:

    试试这个。我想这就是你所期望的。

    1. 它将字符串转换为url。
    2. 从这个网址你可以得到域名。
    3. 您可以从域名中获取地址,如下所示。

      NSURL *validURL = [NSURL URLWithString: yourUrl];
      NSString *host = [validURL host];
      NSString *ipAdress = [[NSHost hostWithName:host]address];
      

    【讨论】:

      【解决方案2】:

      试试这个:

      NSString *ip = [[NSHost hostWithName:(NSString *)yourDomainNameUrl] address];
      

      【讨论】:

      • 顺便说一句:也许您需要修改网址。它应该如下所示:“dl.google.com”。
      • 无需“修改 URL”,但您需要提取主机名。您可以通过使用 URL 创建一个 NSURL 对象然后向它询问主机来做到这一点。
      • 感谢您的重播。我只是想通过使用 BSD ipfw 来获取 URL 的 ip 进行带宽限制,但是 google 有很多 ip,它对我不起作用。我需要控制带宽限制另一种方式。
      【解决方案3】:

      这对我有用

      #import <netdb.h>
      #include <arpa/inet.h>
      
      dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
          struct hostent *host_entry = gethostbyname(charUrl);
          char *buff = inet_ntoa(*((struct in_addr *)host_entry->h_addr_list[0]));
      });
      

      感谢: source

      【讨论】:

        猜你喜欢
        • 2021-07-03
        • 1970-01-01
        • 1970-01-01
        • 2012-08-31
        • 2014-12-31
        • 2012-01-01
        • 2015-04-07
        • 1970-01-01
        • 2016-09-24
        相关资源
        最近更新 更多