从 IP 地址获取主机名 iOS 10

2024-04-06

我需要获取主机名 从 IP 地址。我能够获取连接到我的设备网络的所有设备的 IP、MAC 地址,但是主机名总是返回 nil.

我曾尝试使用下面的代码片段来检索主机名,但它在我的网络中总是返回 nil

代码片段 1

+(NSString *)getHostFromIPAddress:(NSString*)ipAddress {
struct addrinfo *result = NULL;
struct addrinfo hints;

memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0;

int errorStatus = getaddrinfo([ipAddress cStringUsingEncoding:NSASCIIStringEncoding], NULL, &hints, &result);
if (errorStatus != 0) {
    return nil;
}

CFDataRef addressRef = CFDataCreate(NULL, (UInt8 *)result->ai_addr, result->ai_addrlen);
if (addressRef == nil) {
    return nil;
}
freeaddrinfo(result);

CFHostRef hostRef = CFHostCreateWithAddress(kCFAllocatorDefault, addressRef);
if (hostRef == nil) {
    return nil;
}
CFRelease(addressRef);

BOOL succeeded = CFHostStartInfoResolution(hostRef, kCFHostNames, NULL);
if (!succeeded) {
    return nil;
}

NSMutableArray *hostnames = [NSMutableArray array];

CFArrayRef hostnamesRef = CFHostGetNames(hostRef, NULL);
for (int currentIndex = 0; currentIndex < [(__bridge NSArray *)hostnamesRef count]; currentIndex++) {
    [hostnames addObject:[(__bridge NSArray *)hostnamesRef objectAtIndex:currentIndex]];
}

return hostnames[0];
} 

代码片段 2

#pragma mark - Get Host from IP
+(NSString *)getHostFromIPAddress:(NSString*)ipAddress {
struct addrinfo *result = NULL;
struct addrinfo hints;

memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = PF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0;

int error;
struct addrinfo *results = NULL;

error = getaddrinfo([ipAddress cStringUsingEncoding:NSASCIIStringEncoding], NULL, NULL, &results);
if (error != 0)
{
    NSLog (@"Could not get any info for the address");
    return @""; // or exit(1);
}

for (struct addrinfo *r = results; r; r = r->ai_next)
{
    char hostname[NI_MAXHOST] = {0};
    error = getnameinfo(r->ai_addr, r->ai_addrlen, hostname, sizeof hostname, NULL, 0 , 0);
    if (error != 0)
    {
        continue; // try next one
    }
    else
    {
        return [NSString stringWithUTF8String:hostname];;
        NSLog (@"Found hostname: %s", hostname);
        break;
    }
}

freeaddrinfo(results);
  }

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 IP 地址获取主机名 iOS 10 的相关文章

  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • 如何读取 Xcode 6.1 Instruments .trace 文件?

    我一直在尝试阅读 trace文件 我使用生成的custom仪器模板 仪器 自动机 分配 Leaks using 仪器 https developer apple com library mac documentation Developer
  • 如何将 CIFilter 输出到相机视图?

    我刚刚开始使用 Objective C 我正在尝试创建一个简单的应用程序 它显示带有模糊效果的相机视图 我得到了与 AVFoundation 框架一起使用的相机输出 现在 我正在尝试连接 Core 图像框架 但不知道如何连接 Apple 文
  • [[NSMutableDictionary alloc] initWithObjects:...] 和 [NSMutableDictionary DictionaryWithObjects:...] 之间的区别?

    仍在学习 Objective C iPhone SDK 我想我知道为什么这不起作用 但我只是想确认一下 In awakeFromNib 如果我使用 NSMutableDictionary alloc initWithObjects 它实际上
  • 如何用Block简化回调逻辑?

    假设我需要与一个提供协议的类进行通信 并在操作完成时调用委托方法 如下所示 protocol SomeObjectDelegate required void stuffDone id anObject void stuffFailed e
  • 当自定义子视图处理触摸时防止 UITableView 滚动

    在我的 iOS 应用程序中 有一个 UITableView 其中一个单元格中包含一个自定义子视图 该单元格是一个交互式视图 它处理触摸事件 touchesBegan touchesEnded touchesMoved 以更新自身 问题是 当
  • NSOperation 中委托的使用

    我正在尝试利用CLLocationManager in an NSOperation 作为其中的一部分 我需要能够startUpdatingLocation然后等到收到 CLLocation 后才完成操作 目前我已经完成了以下操作 但是委托
  • AppDelegate 的变量用作全局变量不起作用

    我想使用我的 AppDelegate 来存储任何其他类都可以访问的对象 我已经像这样声明了这个 AppDelegate interface MyAppDelegate UIResponder
  • 如何将 UIImageView 裁剪为自定义形状

    用户是否可以在该位周围画一条虚线 圆圈 UIImageView他们希望裁剪到 然后为UIImageView调整大小到这些点 这有点像 Photoshop 中的套索 选取框效果 更新 从 iOS 8 x 开始 UIImageView 提供了m
  • NSDateFormatter:根据 currentLocale 的日期,不包含年份

    这不会太难吧 我想显示不带年份的日期 例如 8 月 2 日 美国 或 02 08 德国 它也必须适用于许多其他语言环境 到目前为止 我唯一的想法是对年份进行正常格式 然后从生成的字符串中删除年份部分 我认为你需要看一下 NSString d
  • 使用 Cocoa/OSX 合并/堆叠两个图像

    我有一个 CGImageRef 我们称之为原始图像 和一个透明 png 水印 我正在尝试编写一种方法将水印放置在原始内容之上 并返回 CGImageRef 在 iOS 中 我会使用 UIKit 将它们绘制到上下文中 但这在 OSX 中似乎不
  • 为每行 NSTableView 文本着色

    我有一个 NSTableView 它显示我拥有的对象数组 对于每个对象 行 我想根据在每个对象上运行的函数的结果来更改显示的文本的颜色 因此 例如表中存在于另一个列表 或其他一些要求 中的所有对象 我想以绿色文本显示它们 不存在的对象以红色
  • AVPlayer 不播放音频 - iOS 9,目标 - C

    我正在尝试从我的应用程序中的 URL 播放音频 iOS 8 中一切都按预期发生 模拟器和物理设备 对于 iOS 9 它可以在模拟器中运行 但在设备上 音频根本无法播放 出现流媒体 如果我单击播放 进度条还显示音频正在加载并播放 但没有声音
  • 与 Objective-C 的 VPN 连接

    有没有办法在 iPhone 的 Objective C 中以编程方式建立 VPN 连接 有这方面的好教程吗 有人知道吗 多谢 我认为第三方应用程序无法访问这些 API
  • 使用 Interface Builder 创建的自定义视图在其他视图中调用时不会呈现

    我有一个用于主窗口的 xib 并通过以下步骤创建了一个自定义视图 创建一个新类 继承自NSView MyView h import
  • UISlider不会自动重绘

    我的应用程序上有一个 UISlider 有时我不仅需要更新它的值 还需要更新它的minimumValue 值已更改 但如果我调用 setValue 方法或为滑块分配新值 它会具有新值 但滑块不会将自身重新绘制到该新值应有的位置 我怎样才能重
  • 访问 google reader 的 Endpoints API 时出错

    我正在尝试在iPhone APP中实现google reader 到目前为止我已经成功收到了sid and auth 当我尝试使用以下命令调用 Endpoints API 时 问题就出现了GET 这是代码 ASIHTTPRequest re
  • 子类 PFObject 上的 PFUser 属性

    我使用以下类 动态属性以及 m 文件中的 load 和 parseClassName 方法 对 PFObject 进行了子类化 interface DAOpponents PFObject
  • iPhone Twitter SDK 与 iOS 5 设备的集成问题

    我已成功将 Twitter Sharekit 与我的 iPad 应用程序源集成 当我在模拟器和装有 iOS 4 X 的 iPad 1 上测试该应用程序时 它运行完美 并且成功发布了推文 但是 如果我在装有 iOS 5 的 iPad 2 上安
  • 如何使用 VB.NET 打开受密码保护的共享网络文件夹?

    我需要在网络上打开受密码保护的共享文件夹才能访问 Access 97 数据库 如何打开文件夹并输入密码 在这里找到http www mredkj com vbnet vbnetmapdrive html http www mredkj co

随机推荐

  • Nestjs:即使正文验证失败也会上传图像

    首先 我为我糟糕的英语表示歉意 我有一个接受 PUT 请求的方法 它接收一个文件和 BlogModel 当我从前端提交表单并且 BlogModel 的验证失败时 文件仍然会上传 main ts import NestFactory from
  • 使用 HttpServletRequestWrapper 进行复制后缺少必需的请求正文

    在我的项目中 我有一组 api 调用 应通过某些常见验证集进行过滤 在这种情况下 我必须在请求到达 REST 控制器之前拦截该请求 读取请求正文 进行验证 如果请求通过验证 则将其传递给控制器 自从HttpServletRequest不能多
  • Python 请求库给出错误“远程端关闭连接而无响应”

    我正在请求库的帮助下进行后调用 import time def retry on connection errors url data data consists of dictionary with 20 key value pairs
  • node.js,express,如何从post请求中的body表单数据中获取数据

    我有一个简单的 Node js 应用程序 我想从用户那里获取帖子正文 app js var express require express var app express app use express json app post api
  • 使用 MediaTracker 在 Swing 应用程序中缓存图像

    我有一个基于 Swing 的金融代码 它将显示价格变动的金融符号以及每个柜台 公司向上或向下的箭头 此股票行情指示器上可以有很多计数器 最多 100 个 并查看是否需要缓存图像符号以提高性能 我尝试过遵循这个article http www
  • 绘制 4d 数据

    我有 4 个维度的点 我们称它们为 v w y z 我想将其可视化 我的计划是有两个正方形 v x w y x z 彼此相邻 然后将每个点绘制两次 给定两点 1 1 1 3 2 2 2 2 我设想这样的事情 给定一小组点 我可以使用不同的颜
  • YAGNI 在编写测试时也适用吗?

    当我编写代码时 我只编写我需要的函数 这种方法也适用于编写测试吗 为了安全起见 我应该提前为我能想到的每个用例编写测试 还是应该只为遇到的用例编写测试 我认为当你编写一个方法时 你应该测试预期的和潜在的错误路径 这并不意味着您应该扩展您的设
  • Pheanstalk(beanstalk 的 PHP 客户端)- 连接如何工作?

    我需要一些帮助来理解 pheanstalk php beanstalk 客户端 的使用 我有一个 PHP 程序 当表单数据发送到服务器时 该程序在服务器上执行 然后 PHP 程序应将表单数据打包为 JSON 结构并将其发送到后端服务器进程
  • 如果子级包含类,如何将类添加到父级?

    我试图将一个类添加到父 DIV 如果它有一个类为 testing 的子 IMG 元素
  • RecyclerView 仅在滚动时更新

    我有一个布局RecyclerView使用适配器 public class SimpleRecyclerAdapter extends RecyclerView Adapter
  • 按索引获取 DataGrid 行

    我正在尝试获得DataGridRow从我的DataGrid基于索引 我正在使用以下代码 public DataGridRow GetGridRow int index DataGridRow row DataGridRow DG State
  • Gulpfile.js 加载失败

    Visual Studio 任务运行程序无法加载 gulp 文件 我用VS2017 v15 9 4然而 现在这个项目是几年前开发的 Failed to run Gulpfile js cmd exe c gulp tasks simple
  • 如何为 AVVideoComposition 设置透明背景?

    Update 我为回答这个问题添加了 50 点声誉赏金 我有一个应用程序需要将一些视频和照片放在一起以创建电影 我正在使用 AVMutableComposition 来实现这一点 为了能够指示它如何合成视频 我必须使用 AVMutableV
  • 如何在类中使用静态/辅助方法?

    我正在写一个Fraction类 我正在尝试使用gcd a b 在初始化时Fraction目的 但是 当我尝试这样做时 如果没有Fraction部分Fraction gcd a b 我用了 staticmethod在这里 但它绝对没有任何作用
  • 如何在一个 UITextView (Xcode) 中拥有两种字体?

    我想在一个 UITextView 中制作两种字体样式 我该怎么做 来自类参考 http developer apple com library IOS documentation UIKit Reference UITextView Cla
  • Linux中分配特定地址

    我想在Linux进程中的特定地址分配一块内存 实际上我想做一些类似的事情 我会有进程号 每个进程都会调用库 由我编写 中的初始化函数 该函数将在进程的地址空间中分配一些内存 它将存储进程相关信息 这将由每个进程完成 一旦分配了该内存 程序就
  • YouTube 可以嵌入 Android 应用程序吗? WebOS 或黑莓怎么样?

    是否可以在 Android 操作系统内播放 YouTube 视频而无需启动单独的 YouTube 播放器 WebOS 或黑莓怎么样 在 iPhone 上 我可以使用 WebView 和嵌入的 YouTube 代码来完成此操作 并且我正在权衡
  • 页面刷新时角度“无法获取”路线

    我的 Angular 应用程序中有一个搜索功能 执行时会点击我的 API 来获取结果 然后使用以下命令重定向用户 location url 一切都很好 直到我尝试重新加载结果页面 当我这样做时 我得到一个Cannot GET search
  • 需要文件而不执行代码?

    这里我有两个文件 file rb def method puts This won t be outputted end puts This will be outputted main rb require file 运行 main rb
  • 从 IP 地址获取主机名 iOS 10

    我需要获取主机名 从 IP 地址 我能够获取连接到我的设备网络的所有设备的 IP MAC 地址 但是主机名总是返回 nil 我曾尝试使用下面的代码片段来检索主机名 但它在我的网络中总是返回 nil 代码片段 1 NSString getHo