如何列出 iOS 中开放的端口?

2024-03-13

我正在使用一个*已越狱设备,我想要写一个应用程序列出打开的端口(例如 TCP 端口)。

我有两个想法:

  • 使用一些本机 API 获取打开的端口列表
  • 执行 shell 命令以获取打开的端口列表并解析此 shell 命令的结果。

我应该使用哪个 API 或 shell 命令以及如何以编程方式触发它?


我这样做的方法是让您的应用程序调用 UNIXlsof以编程方式命令。lsof列出打开的“文件”,在 BSD 系统上包括套接字,其中包括 TCP 套接字。

Saurik 曾经发布过一个版本lsofCydia 上可用。不幸的是,我最近没能让它发挥作用。您可以自己尝试一下,因为 Saurik 的软件通常应该值得信赖。您还可以尝试编译lsof自己源代码,因为它可以在线获取。

然而,我发现这里有一个关于这个问题的讨论线程 http://modmyi.com/forums/native-iphone-ipod-touch-app-discussion/721184-lsof-problem.html。用户 Firewire888 能够获得自制版本lsof在 iOS 上工作。如果您信任他们的工作,那么您可以下载二进制文件在此归档 http://pupil.io8.org/pub/iphone/misc/lsof/lsof-arm7-iOS4.2。根据他们的指示:

  1. 在 mac os x 上下载 ldid for macos。https://networkpx.googlecode.com/files/ldid https://networkpx.googlecode.com/files/ldid
  2. 在 mac osx 上下载此线程中 lsof 的扫描仪版本 http://pupil.io8.org/pub/iphone/misc/lsof/lsof-arm7-iOS4.2。再次感谢!
  3. 在 mac osx 上运行ldid -S lsof
  4. scp 或任何方式得到lsof to /usr/sbin/lsof在 iPhone 上(必须位于 /usr/sbin 中,否则会得到错误无法分叉 )

所以,你需要伪造那个版本的协同设计lsof然后将其安装到您的 iPhone 上/usr/sbin/lsof.

然后就可以使用私有API了NSTask(OS X 上公开)从应用程序内运行 shell 命令并捕获输出。

例如,使用命令:

lsof -i4tcp

将列出所有 IPv4 TCP 端口。

在你的 Objective-C 代码中,你可以这样做:

#include "NSTask.h"

- (void) listTcpPorts {
   NSTask *task = [[NSTask alloc] init];
   [task setLaunchPath: @"/usr/sbin/lsof"];
   [task setArguments: [[NSArray alloc] initWithObjects: @"-i4tcp", nil]];

   NSPipe *pipe= [NSPipe pipe];
   [task setStandardOutput: pipe];

   NSFileHandle *file = [pipe fileHandleForReading];

   [task launch];

   NSData *data = [file readDataToEndOfFile];

   NSString *output = [[NSString alloc] initWithData: data encoding: NSUTF8StringEncoding];
   NSLog(@"tcp ports: \n %@", output);
}

这需要下载NSTask标头,你可以在这里找到 https://github.com/rpetrich/iphoneheaders/blob/master/Foundation/NSTask.h.

这给了我标准输出:

Sep 11 18:53:47 iPhone5 HelloJB[34535] <Warning>: tcp ports: 
    COMMAND     PID   USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
    apsd        143 mobile    9u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51216->17.172.238.202:5223 (ESTABLISHED)
    apsd        143 mobile   10u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51215->17.149.37.18:5223 (ESTABLISHED)
    apsd        143 mobile   12u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51215->17.149.37.18:5223 (ESTABLISHED)
    apsd        143 mobile   14u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51216->17.172.238.202:5223 (ESTABLISHED)
    dataacces   166 mobile   25u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51276->pc-in-f193.1e100.net:https (ESTABLISHED)
    dataacces   166 mobile   27u  IPv4 0x12345678      0t0  TCP 10.244.7.127:51276->pc-in-f193.1e100.net:https (ESTABLISHED)
    afcd      26764 mobile    9u  IPv4 0x12345678      0t0  TCP localhost:51284->localhost:51285 (ESTABLISHED)
    MobileSaf 33165 mobile   11u  IPv4 0x12345678      0t0  TCP 192.168.4.119:51349->stackoverflow.com:http (ESTABLISHED)
    MobileSaf 33165 mobile   12u  IPv4 0x12345678      0t0  TCP 192.168.4.119:51349->stackoverflow.com:http (ESTABLISHED)
    Weather   33191 mobile    5u  IPv4 0x12345678      0t0  TCP 192.168.4.119:50181->yts2.yql.vip.gq1.yahoo.com:http (LAST_ACK)
    Weather   33191 mobile    7u  IPv4 0x12345678      0t0  TCP 192.168.4.119:50182->yts2.yql.vip.gq1.yahoo.com:http (LAST_ACK)
    Weather   33191 mobile    8u  IPv4 0x12345678      0t0  TCP 192.168.4.119:50181->yts2.yql.vip.gq1.yahoo.com:http (LAST_ACK)
    Weather   33191 mobile   10u  IPv4 0x12345678      0t0  TCP 192.168.4.119:50182->yts2.yql.vip.gq1.yahoo.com:http (LAST_ACK)
    notificat 33929 mobile    4u  IPv4 0x12345678      0t0  TCP localhost:51295->localhost:51296 (ESTABLISHED)
    notificat 33929 mobile    5u  IPv4 0x12345678      0t0  TCP localhost:51301->localhost:51302 (ESTABLISHED)
    notificat 33929 mobile    6u  IPv4 0x12345678      0t0  TCP localhost:51318->localhost:51319 (ESTABLISHED)
    notificat 33929 mobile    7u  IPv4 0x12345678      0t0  TCP localhost:51330->localhost:51331 (ESTABLISHED)
    syslog_re 34468 mobile    3u  IPv4 0x12345678      0t0  TCP localhost:51321->localhost:51322 (ESTABLISHED)

您可以选择使用不同的命令行选项和/或解析输出,以满足您的需求。祝你好运!

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

如何列出 iOS 中开放的端口? 的相关文章

  • 覆盖层不与 UITableView 一起滚动 - iOS

    我有一个 UITableView 类 它使用以下方法在转到下一个屏幕时调用加载覆盖 问题是这个加载屏幕不随列表滚动 所以如果你滚动一点并单击某些东西 加载屏幕不会显示 因为它位于顶部 如何让加载屏幕始终保持在 UITableView 的顶部
  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 将 Firebase 云消息传递与 Windows 应用程序结合使用

    我在 Android 和 iOS 应用程序中使用 Firebase Cloud Messaging 但是我还有此应用程序的 Windows Mac OS 版本 我想保留相同的逻辑 我知道 Firebase Cloud Messaging 可
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • Xcode 8 / Swift 3:“UIViewController 类型的表达式?未使用”警告

    我有以下函数 它之前编译得很干净 但在 Xcode 8 中生成警告 func exitViewController navigationController popViewController animated true UIViewCon
  • 在 iOS 应用程序中拨打电话

    我有一些代码尝试在应用程序中进行调用 但它似乎不起作用 UIApplication myApp UIApplication sharedApplication NSString theCall NSString stringWithForm
  • iPhone X 将对象底部与安全区域对齐会破坏其他设备上的外观

    关于 iPhone X 自动布局怪癖的问题 我有两个按钮 以前这些按钮将与超级视图底部对齐 偏移量为 20 以免它们接触屏幕底部 此后我将链接更改为安全区域而不是超级视图 Here s the original setup Looks go
  • BigQuery 未显示链接的 Firebase Analytics 事件日志的任何数据集

    我将我的帐户链接到 Big Query 但 Firebase Analytics 事件不会自动加载到 BigQuery 中 显示 未找到数据集 警告 我的工作进度附在下面 请查收 I have getting firebase Analyt
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • jQuery:离线后 POST 出错(iOS 和 Chrome)

    我构建了一个具有离线功能的 HTML5 Web 应用程序 使用 AppCache 程序流程为 Online 在网络上时 应用程序预加载一些基本信息 工作 Offline 用户拿着装有应用程序的平板电脑offline 然后在应用程序上执行他们
  • Swift:长按手势识别器 - 检测轻击和长按

    我想连接一个动作 如果手势是点击 它会以特定的方式为对象设置动画 但如果按下持续时间超过 0 5 秒 它会执行其他操作 现在 我刚刚连接了动画 我不知道如何区分长按和点击 如何访问新闻持续时间以实现上述目的 IBAction func ta
  • iOS 7 tabBar 横线,如何去掉?

    Apple 在 iOS 7 中的 tabBar 上添加了一条细线 该线应该在 tabBar 和 UI 之间起到阴影或淡入淡出的作用 由于我使用的是定制的 tabBar 这条线非常令人恼火 你如何删除它 请告诉我这是可能的 否则我需要重新设计
  • 当应用程序进入前台时,如何重新启动基于块的动画?

    我有以下基于块的动画 UIView animateWithDuration 0 5f delay 0 0f options UIViewAnimationOptionRepeat UIViewAnimationOptionAutorever
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • Xcode 异步单元测试在主线程上等待

    我正在尝试使用 Xcode 中的单元测试来测试一些异步代码 但主线程被阻塞 问题在于 某些正在测试的代码期望从 iOS 类 AVFoundation 接收回调 但是 AVFoundation 类似乎只会在主线程上回调 问题是 如果我正在进行
  • 从现有坐标地图套件中查找最近的位置

    我正在为拥有多家商店的客户开发 iPhone 应用程序 目标 C 我有数组中所有商店 20 的坐标 纬度 长 目前我正在考虑循环遍历商店坐标数组并获取从用户当前位置到商店位置的距离 然后将它们添加到数组中并按最小距离进行排序 这是正确的方法
  • 诊断和仪器均缺少“僵尸”选项

    运行 Xcode 4 0 2 Zombie 选项丢失 其他 SO 帖子建议找到它的两个地方 Product gt Run looks like this Product gt Profile looks like this 奇怪的是 我之前
  • 所有 RestKit 项目在归档时都无法构建

    这个问题涉及RESTKIT 0 9 x 如果您是 Restkit 新手 请考虑使用较新的版本0 10 x https github com RestKit RestKit tree v0 10 1 branch 我最近继承了一个项目 使用r
  • 使用日期 Swift 3 对字典数组进行排序

    我有一个名为 myArray 的数组 其中添加了字典 我希望该字典按时间排序 这是字典中的键 那个时间是在 String 中 时间的日期格式为 yyyy MM dd HH mm ss 我尝试使用下面的代码解决方案 但给出了 从 字符串转换

随机推荐

  • 将 jsTree 节点设置为“未确定”状态

    我在用着jsTree http www jstree com 显示带有复选框的树 每个级别的节点都使用以下命令按需加载json data plugin 如果检查节点的后代 则该节点应处于 未确定状态 如 ACME 和 USA 问题是 树一开
  • 程序类型已存在:io.invertase.firebase.BuildConfig

    根据一些谷歌搜索 两个包之间似乎存在一些重叠 我过去遇到过类似的问题 我认为我能够使用 gradlew clean 修复它 但这并不能解决我当前的问题 这是错误 任务 app transformDexArchiveWithDexMerger
  • 箱子堆放问题

    我在很多地方都发现了这个著名的 dp 问题 但我不知道如何解决 给你一组 n 种类型 矩形 3 D 盒子 其中第 i 盒子的高度为 h i 宽度为 w i 深度 d i 均为实数 你 想要创建一堆盒子 尽可能高 但你可以 只将一个盒子堆叠在
  • 如何处理使用相同数据库的两个独立 Laravel 项目的迁移?

    我们的设置是这样的 我们有 API 可以为 iOS 和 Android 应用程序提供支持 我们有一个管理 API 可以为管理 Web 应用程序提供支持 我正在开发管理员 我的同事正在开发应用程序 API 它们都使用相同的数据库和大部分相同的
  • Ternary 和 If/Else 编译成相同的东西,为什么?

    编译器将简单的三元语句编译为与编译简单的 if else 语句相同的东西吗 另外 为什么编译器会被设计为以不同的方式编译它们 例如 这样 int a 169 int b 420 int c c a gt b 42 69 编译为与此相同的内容
  • 是否可以支持旧 API 级别的 setScrollY() (ScrollView API 14) 之类的函数?

    我正在编写一个简单的第一个 Android 应用程序 我的主要活动之一是相当长的 ScrollView 其中我有一些调用其他 ListView 的按钮 当 ListView 完成并且 ScrollView 回来时 我希望屏幕上的位置与第一次
  • 我们可以将两个连接到不同数据库的 Django/python 应用程序合并到一个集成应用程序中吗

    我有两个独立的 Django 应用程序连接到不同的数据库 我想制作一个父应用程序 将请求路由到两个子应用程序之一 这可能吗 我怎样才能实现这一目标 父应用程序不必连接到任何数据库 它应该只是将请求路由到子应用程序 谢谢您的帮助 这个有可能
  • 为什么我在后台运行脚本时会得到“暂停(tty 输入)”的信息

    我写了一个tcsh脚本来清除集群中的垃圾数据 代码是 set hosts 1 set clear path 2 foreach i hosts rsh i rm rvf clear path end 当我在后台运行此脚本时 如下所示 dis
  • 如何查找两个 JavaScript 对象数组之间的差异?

    我有两个 JavaScript 数组orig 原始对象数组 和update 更新后的对象原始数组 具有相同的长度并包含对象 我想输出每对对象之间的差异 Example var orig enabled true name Obj1 id 3
  • 如何将 unicode 字符发送到活动应用程序?

    我需要 Windows API 中的 SendInput 之类的东西 我看到这个方法 我不知道有什么办法可以将unicode字符转换为虚拟键码 CGEventRef CGEventCreateKeyboardEvent CGEventSou
  • Neo4j 2 和 Java 8

    Java 8 将于本周发布 当将 Neo4j 1 9 与 Java 7 一起使用时 我们看到弹出警告 提示仅支持 6 但我们对 1 9 7 组合从未遇到任何问题 我知道 Neo4j 2 不能使用低于 Java 7 的任何东西 但是 Neo4
  • 禁用键盘 :: TextInput React Native

    下面给出的代码在第一次和第二次点击时有效 在相同的文本输入上它不起作用 键盘再次打开 因为文本输入已经聚焦 并且我正在使用自定义数字按钮进行输入 TextInput onFocus Keyboard dismiss 有什么建议么 原生反应的
  • HTML5 中是否可以实现类似 Photoshop 的混合模式?

    我想放一个红色矩形 div 元素在我的网页上 这样它不仅看起来是透明的 而且就像在 Photoshop 的乘法模式中混合的一样 The div 将有position fixed 所以下面的内容会很快改变 任何 HTML5 CSS3 canv
  • 自动打开第一张 Fancybox 图片

    单击链接后 我将从 JSON get 中引入一些图像 然后单击其中一张图片时可以显示图库 但我希望第一张图像立即出现 作为一旦JSON 已加载 这可能吗 我的代码是 json get css cursor pointer click fun
  • 在 tr 上使用 :hover 时出现 CSS 边框问题

    我试图在数据表中突出显示鼠标所在的行 我正在尝试用 border top 和 border bottom 来做到这一点 为了提高可读性 我还在交替行上放置了一个浅色透明的 png 似乎当我打开和关闭边框 适用于 IE8 和 FF 时 行会稍
  • 如何将 PHYLIP 格式转换为 FASTA

    我刚刚开始使用 perl 我有一个问题 我有 PHYLIP 文件 我需要将其转换为 FASTA 我开始写剧本 首先 我删除了行中的空格 现在我需要对齐所有行 每行应包含 60 个氨基酸 并且序列标识符应打印在新行中 也许有人可以给我一些建议
  • 时间耦合与工作单元

    所以 正如一直以来向我指出 https stackoverflow com questions 16148924 value types inferred as object at runtime when using dynamic 16
  • Node.js console.log 是否有长度限制?

    Node js 中 console log 输出的长度有限制吗 下面的代码打印 56462 之前的数字 然后停止 出现此问题是因为我们从 MySQL 返回数据集 并且输出将在 327k 个字符后退出 var out for i 0 i lt
  • 从 C# 运行 Bash 命令

    我试图弄清楚如何从在 IIS 7 Net 4 5 上运行的 C 运行 bash 命令 我一直在网上搜索 很多答案都假设您已经安装 就位了某些东西 我已经有了Git 1 9 4 msysgit 2与 Git Bash 和 Git Giu 一起
  • 如何列出 iOS 中开放的端口?

    我正在使用一个 已越狱设备 我想要写一个应用程序列出打开的端口 例如 TCP 端口 我有两个想法 使用一些本机 API 获取打开的端口列表 执行 shell 命令以获取打开的端口列表并解析此 shell 命令的结果 我应该使用哪个 API