忘记电视 IP 之后:一次从零开始的 Mac 局域网与 ADB 学习记录
记录日期:2026 年 10 月 24 日
使用环境:Mac 终端、家里的局域网、海信 LED60K380 电视
已知系统:Android 4.2.2
适合读者:和我一样,不熟悉计算机网络、第一次接触终端的人。
一、事情的起点:我忘记了电视的 IP
这次事情的起点很简单:我想通过电脑连接家里的旧电视,却遇到了一个问题------电视的 IP 地址是什么?
后来,我手里有了这样一组信息:
| 项目 | 当时记录的信息 |
|---|---|
| IP 地址 | 192.168.15.180 |
| ADB 端口 | 5555 |
| 电视型号 | 海信 LED60K380 |
| 系统版本 | Android 4.2.2 |
此前曾经通过 Wi-Fi 成功读取过型号和系统版本,说明电视当时至少能够通过网络与电脑通信。之后,ADB 连接又显示成了 offline。
我最惊讶的其实不是命令本身,而是:不知道电视的 IP,竟然也可以先找出局域网里的设备,再判断哪个可能是电视。
我原来以为,必须先知道地址才能连接;这次才发现,寻找地址本身也有方法。
这篇文章就把整个学习过程记下来:我执行了什么、看见了什么、误解了什么,以及下次遇到同样的问题时应该怎样排查。
先把记录边界说清楚:最初究竟通过哪一种方法得到 .180,目前没有完整的操作记录可以还原。本文不会把某一种方法写成已经确认的历史。后面展示的完整排查步骤,也不代表本次每一步都已经执行成功。
截至这次记录,尚未修改电视系统,也没有恢复电视桌面。找到地址、建立连接、恢复桌面,是不同的进展。
二、先认识四个词:局域网、IP、端口和 ADB
1. 局域网:家里设备相互联系的小范围网络
家里的电脑、手机和电视连接到同一台路由器后,通常就处在同一个局域网中。
可以先把它想成一栋楼:
- 路由器负责组织这栋楼里的网络通信。
- 电脑、手机、电视是楼里的不同住户。
- 每台设备需要一个地址,其他设备才能找到它。
电脑用 Wi-Fi、电视插网线,也可能在同一个局域网里,并不要求两者都使用无线连接。
不过,同一个 Wi-Fi 名称也不保证设备一定能互相访问。访客网络、设备隔离等设置,可能阻止设备之间通信。
2. IP 地址:设备在网络里的门牌号
例如:
text
192.168.15.180
可以先理解为电视当时在家里网络中的"门牌号"。电脑知道这个地址,才能把连接请求发到相应的设备。
但 IP 不等于设备永远不变的身份证。如果地址由路由器自动分配,电视重新连接网络、路由器调整分配等情况,都可能让地址发生变化。
因此,"以前是 .180"只能作为重要线索,不能保证现在仍然是 .180。
3. 端口:同一门牌号里的不同服务入口
一台设备可以提供多种网络服务。为了让连接请求到达正确的服务,除了 IP,还需要指定端口。
这次使用的是:
text
192.168.15.180:5555
可以拆成两部分:
| 内容 | 含义 |
|---|---|
192.168.15.180 |
找哪台设备 |
5555 |
找这台设备上的哪个服务入口 |
中间的 : |
把 IP 和端口分开 |
知道设备的 IP,不代表它的每个端口都能连接;端口能连接,也不代表它一定提供我想要的服务。
4. ADB:电脑与 Android 设备通信的工具
ADB 的全称是 Android Debug Bridge,可以用来与 Android 设备通信,例如查看设备连接状态、读取信息和执行设备端命令。官方说明见 Android Developers:ADB。
这次电视运行的是 Android,所以可以尝试使用 ADB。但是,运行 Android 不等于自动开放网络 ADB,电视端必须已经有相应服务可供连接。
5555 是传统网络 ADB 常用的端口,这次也是已知的连接端口。它并不是所有 Android 设备都必须开放的端口。
三、不知道 IP,可以从哪里找?
这次我认识了三种方式:设备列表、邻居记录、网段探测。
方式一:看路由器的设备列表------向"物业"查名单
设备通过路由器接入家庭网络,路由器通常会保留相关记录。
可以进入路由器管理网页,或者使用路由器的手机管理 App,寻找名称类似下面的栏目:
- 已连接设备。
- 终端管理。
- 在线设备。
- DHCP 客户端列表。
不同品牌的栏目名称不同。其中,"在线设备"和"DHCP 租约记录"也不完全一样:租约还在,不一定说明设备此刻在线。
列表可能显示设备名称、IP、网卡地址和连接方式。例如,下面只是说明格式的示意:
| 设备名称 | IP 地址 |
|---|---|
| Hisense-TV | 192.168.15.180 |
| 未知设备 | 192.168.15.55 |
如果设备名称里包含电视品牌,就比较容易找到线索。不过名称也可能显示不出来,或者不够准确,仍然需要核对。
方式二:看电脑的邻居记录------翻电脑的"地址簿"
我这次实际执行了:
sh
arp -a
它会列出电脑当前保存的 IPv4 邻居地址记录。可以把它理解为电脑临时保存的一本"IP 与网卡地址对照簿"。
这本地址簿不是整个家庭网络的完整名单,也不是一张实时在线证明。
方式三:探测一批地址------挨家挨户"敲门"
如果没有设备名单,也无法从记录里确定目标,就可以检查一批候选 IP。
这次检查的是:
text
192.168.15.1
192.168.15.2
192.168.15.3
......
192.168.15.254
而且不是泛泛地问"你在不在",而是具体检查:这个地址的 TCP 5555 端口,现在能不能建立连接?
这和寻找某个人很像:先找到能敲开的门,再核实开门的人是不是我要找的那个人。
这里采用的是常见的 255.255.255.0 子网范围示例。并不是所有家庭网络都恰好只需要检查末尾的 1~254,更不能把 192.168.15 原样套到所有人的网络里。换一个网络,应先查看当前网络的 IP 和子网掩码。
这几种方式的区别,可以放在一张表里:
| 方式 | 信息来自哪里 | 能提供什么线索 | 不能直接证明什么 |
|---|---|---|---|
| 路由器设备列表 | 路由器 | 设备名称、地址、连接记录等 | 名称一定准确、记录一定实时 |
arp -a |
电脑的邻居缓存 | IP 与网卡地址的对应记录 | 全网设备都在这里、记录中的设备都在线 |
| 端口探测 | 当次连接尝试 | 某个 IP 的某个端口是否可达 | 设备就是电视、服务一定是 ADB |
四、实际操作之前:怎样把命令输入 Mac 终端
我在这一步也遇到了困惑:一段好几行的命令,到底应该怎么输入?
1. 打开终端
在 Mac 上按 Command + 空格,搜索"终端"或"Terminal",然后打开。
通常能看到类似这样的提示:
text
inkcrazy@MacBook-Pro ~ %
这串文字是终端提示符,表示它正在等我输入命令。
不需要把用户名、电脑名和 % 一起复制进去。只复制命令本身。
2. 单行命令:粘贴后按回车
例如,只复制下面这一行:
sh
arp -a
粘贴到终端后按回车,就会执行。
3. 多行命令:完整复制整段
像 for 循环这样的多行命令,可以把代码框里的全部内容一次性复制、粘贴,最后按回车。
如果逐行输入,中途出现 for>、if> 等提示,通常表示终端还在等待后面的内容,并不一定是出错。提示的具体样式可能因终端配置不同而不同。
不要复制 Markdown 代码框的三个反引号,也不要复制文章中的示例输出。
4. 想停止:按 Control + C
如果命令还在执行,想取消它,可以按:
text
Control + C
这里是 Control ,不是 Mac 上复制文字用的 Command。
对于本文的前台扫描命令,重新出现平时的终端提示符,通常意味着这次执行已经结束,或者已被中断。
五、第一步:运行 arp -a,读懂电脑里的记录
我输入:
sh
arp -a
实际输出很长,下面摘录其中几行:
text
? (192.168.15.1) at 48:7a:da:be:30:29 on en0 ifscope [ethernet]
? (192.168.15.2) at (incomplete) on en0 ifscope [ethernet]
? (192.168.15.55) at 70:4a:e:51:d9:ee on en0 ifscope [ethernet]
? (192.168.15.180) at a8:a7:95:7:2b:11 on en0 ifscope [ethernet]
第一次看到这种输出,几乎每一部分都陌生。拆开看就容易理解了。
192.168.15.180:IP 地址
这是我要查找的重要线索,和此前记录的电视 IP 相同。
a8:a7:95:7:2b:11:网卡地址
这串由冒号分隔的内容叫 MAC 地址,也就是网卡地址。这里的 MAC 与苹果电脑的 Mac 不是一回事。
它可以帮助区分网络接口,但不能仅凭这串数字就确认设备型号。有些设备还会使用随机网卡地址,因此也不能把它当成永远不变的身份凭证。
输出有时会省略每一段开头的 0,所以某一段只有一位字符,并不一定是格式错误。
en0:电脑使用的网络接口名称
这表示该记录关联到 Mac 的 en0 网络接口。接口名本身不直接告诉我对方是什么设备。
?:没有显示出可读的主机名
它不是"这个 IP 出错了"的意思,只是这行没有显示出容易识别的主机名。
incomplete:没有成功获得对应的网卡地址
例如:
text
? (192.168.15.2) at (incomplete) on en0 ifscope [ethernet]
表示电脑没有成功得到这个 IP 对应的网卡地址。
这不等于 .2 一定有一台设备,也不等于某台设备坏了。 它只是一次地址解析没有完成。
检查过一批 IP 后,缓存中可能出现许多这样的条目。所以,看到两百多行记录,不能直接得出"家里有两百多台设备"。
这一阶段,我能确认的是:电脑的记录里有 .180 与一个网卡地址的对应关系。至于它现在是否在线、5555 是否开放,还需要继续检查。
六、第二步:先检查已知的电视 IP
如果手里已经有 .180 这个线索,不必每次都从头扫描整个网段。可以先只检查它:
sh
nc -zv -G 2 192.168.15.180 5555
这条命令使用 Mac 的 nc 工具,检查指定地址的 TCP 端口。
| 部分 | 含义 |
|---|---|
nc |
使用网络连接工具 Netcat |
-z |
只检查端口,不发送应用数据 |
-v |
显示更详细的结果 |
-G 2 |
将 TCP 连接超时设为 2 秒 |
192.168.15.180 |
本次要检查的 IP |
5555 |
本次要检查的端口 |
这里的参数解释针对 macOS 自带的 nc。其他系统或其他版本的 nc,参数可能不同。
以下是可能出现的结果示意,不是本次已经获得的完整输出:
| 结果中的关键词 | 可以怎样理解 |
|---|---|
succeeded |
本次成功连接到该 TCP 端口 |
Connection refused |
连接被拒绝,可能没有服务监听该端口,也可能由网络设备拒绝 |
timed out / Operation timed out |
在规定时间内没有完成连接 |
No route to host 等 |
网络路径或可达性可能有问题,需要进一步检查 |
超时不等于电视损坏。IP 变了、电视断网、服务未启动、设备隔离等情况,都可能造成连接失败。
而成功也只证明"端口能连上",不能直接证明"桌面已恢复"。
七、第三步:不知道当前 IP,就逐个检查候选地址
这次实际运行的扫描命令是:
sh
for i in {1..254}; do
if nc -z -G 1 "192.168.15.$i" 5555 2>/dev/null; then
echo "发现开放 5555 端口的设备:192.168.15.$i"
fi
done
我第一次粘贴后,终端没有立即显示结果。我以为命令没有运行,后来才知道,它可能正在安静地检查。
逐行理解这段命令
第一行:
text
for i in {1..254}; do
意思是让变量 i 依次取 1、2、3......254,每取一个数字,就执行后面的操作。
这里的 i 可以理解为一个临时装数字的小盒子。
第二行:
text
if nc -z -G 1 "192.168.15.$i" 5555 2>/dev/null; then
$i 会被替换为小盒子里当前的数字。因此,它会依次检查 .1、.2、.3,直到 .254。
if 和 then 的含义是:如果这一轮端口检查成功,就执行后面的显示操作。
2>/dev/null 则把错误输出丢弃。可以先把它理解为"失败时不要刷屏"。这让结果干净,但也隐藏了失败的原因;如果怀疑命令本身有问题,应使用上一节的单个地址检查,直接查看报错。
第三行:
sh
echo "发现开放 5555 端口的设备:192.168.15.$i"
echo 用来显示文字。只有前面的检查成功,才会显示这一句。
最后两行:
text
fi
done
fi 结束条件判断,done 结束循环。
这些语句是一个整体,不能只复制中间几行。
为什么可能几分钟都没有输出?
因为它逐个检查,而不是同时检查全部地址。每次连接都可能需要等待,失败提示又被隐藏了。
如果很多地址都接近 1 秒才超时,254 个地址就可能需要约 4 分钟;实际时长受网络情况等因素影响,并不是精确倒计时。
这段命令没有进度条,"没有输出"本身不能说明它没有运行。
八、这次真正踩到的坑:只看到 .55,就以为没有 .180
扫描过程中,终端出现了这一行:
text
发现开放 5555 端口的设备:192.168.15.55
我当时马上疑惑:为什么发现了 .55,却没有发现 .180?是不是因为电视已经被我连接过,所以别人就查不到了?
后来发现,最直接的解释是:扫描还没有结束。
它从小到大逐个检查,.55 在 .180 前面。发现 .55 后,还要继续检查许多地址,才能轮到 .180。
当时输出后面没有重新出现平时的终端提示符,这也是命令可能仍在执行的线索。后来我确认:确实还在扫描。
这让我学到两件事:
- 中途输出的一条发现结果,不等于最终扫描结果。
- 对正常监听的 TCP 服务而言,已有一个连接,通常不会让监听端口消失。不能因为一次没扫到,就断定"被我连接占用了"。
另外,.55 只能说明它当时的 5555 端口可以连接。它可能是什么设备,需要继续核实。本次记录没有确认 .55 就是电视。
九、给自己留一个有进度提示的版本
为了避免下次又盯着空白终端怀疑自己,我把扫描命令改成了每轮都显示正在检查哪个地址:
sh
for i in {1..254}; do
echo "正在检查:192.168.15.$i"
if nc -z -G 1 "192.168.15.$i" 5555 2>/dev/null; then
echo ">>> 发现开放 5555 端口的设备:192.168.15.$i"
fi
done
echo "全部检查完成"
这个版本留作后续使用,本次贴出的实际扫描记录使用的是前面的简洁版本。
它的检查方式没有改变,只是增加了可见的进度和结束提示。
运行时会显示类似下面的内容,以下为格式示意:
text
正在检查:192.168.15.1
正在检查:192.168.15.2
......
正在检查:192.168.15.55
>>> 发现开放 5555 端口的设备:192.168.15.55
正在检查:192.168.15.56
......
全部检查完成
使用时,先确认旧扫描已经结束;如果还在运行,按 Control + C 停止,再完整粘贴新版本并回车。
它仍然只检查指定范围内的 TCP 5555。 如果没有发现结果,只能说明这次检查没有成功连上这些地址的这个端口,不能说明局域网里没有其他设备。
十、找到候选地址后,怎样核实是不是电视?
找到端口开放的地址之后,才进入 ADB 验证阶段。
下面保留一套以后可以照着做的步骤,以已有电视线索 .180 为例。它不代表本次扫描结束后已经重新连接成功。
1. 确认电脑能使用 ADB
sh
adb version
如果终端提示 command not found: adb,意思是电脑没有找到这个命令,可能尚未安装,也可能安装目录不在命令搜索路径中。这还不是电视连接失败。
ADB 包含在官方 SDK Platform-Tools 中。若尚未安装,可以下载 macOS 版本并解压,进入解压后的 platform-tools 文件夹,再使用 ./adb。
对不熟悉路径的我来说,可以在终端输入 cd 和一个空格,把这个文件夹拖进终端,再按回车进入它。然后执行:
sh
./adb version
如果采用这种方式,本文后续命令里的 adb 都要相应写成 ./adb,并在该文件夹中运行。
2. 尝试建立连接
sh
adb connect 192.168.15.180:5555
如果以后确认电视换了 IP,就把这里的地址改成经过核实的新地址,不要一直使用旧地址。
这条命令的作用是尝试连接已有的设备端 ADB 服务。它不会凭空打开一台电视上尚未启用的网络 ADB。
也不要把网上针对新版 Android 的扫码配对教程,直接套用到这台 Android 4.2.2 的旧电视上。官方文档对传统 TCP/IP 连接和较新的无线配对方式有不同说明,参见 ADB 网络连接说明。
3. 查看 ADB 连接状态
sh
adb devices -l
如果连接正常,可能出现如下格式,注意这只是示意:
text
List of devices attached
192.168.15.180:5555 device
常见状态的含义:
| 状态 | 怎样理解 |
|---|---|
device |
ADB 已建立通信连接,但不能据此判断电视桌面正常 |
offline |
设备未与 ADB 正常连接,或没有响应 |
unauthorized |
调试授权尚未通过,需要处理设备端授权 |
| 列表没有目标 | 当前 ADB 列表里没有这个目标,不能据此断定设备不在局域网 |
关于连接状态,可以对照 ADB 官方设备列表说明。
4. 读取型号和系统版本
连接正常后,可以读取两个系统属性:
sh
adb -s 192.168.15.180:5555 shell getprop ro.product.model
sh
adb -s 192.168.15.180:5555 shell getprop ro.build.version.release
逐个理解:
| 部分 | 含义 |
|---|---|
-s 192.168.15.180:5555 |
明确指定操作哪一个 ADB 目标 |
shell |
在设备端执行后面的命令 |
getprop |
读取系统属性 |
ro.product.model |
产品型号属性 |
ro.build.version.release |
Android 系统版本属性 |
明确指定目标,可以避免同时连接多个 Android 设备时弄混。
此前记录的电视身份信息是海信 LED60K380、Android 4.2.2。实际核实时,应把读取结果与电视本身的信息对照,必要时再结合路由器记录和网卡地址,不能只凭端口号认定身份。
这两条 getprop 命令读取的是信息,不会恢复桌面、安装应用或刷写系统。ADB 本身可以执行其他具有修改作用的操作,所以要区分具体命令的用途。
十一、如果又出现 offline,我应该怎么理解?
这次此前能读取信息,之后又出现过 offline。
我原来容易把"连接不上"和"电视坏了"混在一起。现在知道,中间其实有好几个环节:
text
电视接入网络
↓
电脑能到达正确的 IP
↓
目标 TCP 端口能连接
↓
ADB 可以正常通信
↓
才能继续检查电视系统和桌面的情况
某一个环节不通,不等于后面的所有东西都已经损坏。
如果再次遇到问题,可以按下面的顺序排查:
- 先看命令是否还在执行,避免把等待误判为失败。
- 确认电视开机并已连接网络,而不是只有屏幕处于待机状态。
- 确认电脑与电视处于允许相互访问的网络中。
- 查看当前 IP,检查是否仍然是
.180。 - 单独检查当前地址的
5555端口,保留报错信息。 - 再查看
adb devices -l的结果。
确认目标 IP 没有变化之后,可以尝试只断开这个 ADB 目标,再重新连接:
sh
adb disconnect 192.168.15.180:5555
adb connect 192.168.15.180:5555
adb devices -l
这是留作后续的连接排查方法,不是本次已经验证有效的修复方案,也不保证能解决所有 offline。
十二、还有哪些方法可以帮助找电视?
1. 直接在电视的网络设置里查看
如果还能进入电视设置,寻找"网络设置""网络详情""连接信息"等页面,通常可以看到 IP。具体入口以电视实际界面为准。
如果桌面或设置无法打开,这条路可能暂时走不通,这时再借助路由器和电脑。
2. 在路由器列表里对照网络连接变化
如果有多台未知设备,可以记录列表,暂时断开电视的网络,再重新连接,观察哪个条目的连接状态随之变化。
这适合作为辅助线索。路由器列表可能更新不及时,DHCP 记录也可能继续保留,所以不能要求"断网后这一行必须马上消失"。
3. 使用有界面的局域网发现工具
这类工具可以把设备列表、地址和探测结果做成图形界面。它们不一定有一种神秘的新能力,常常只是把查询记录、发送探测、尝试识别名称等过程组合起来。
无论工具长什么样,仍然要区分:找到了一个地址、发现了开放端口、确认了设备身份。
4. 关于 ping:能当线索,但不是最终答案
如果想测试一个已知 IP 是否会回应,也可以运行:
sh
ping -c 3 192.168.15.180
-c 3 表示发送 3 次探测后结束。
有回复,说明有设备在这个地址回应了这类探测,不代表它一定是电视,也不证明 5555 开放;没有回复,也可能是设备或网络不回应这种探测,不能单独认定设备离线。
十三、下次再忘记 IP,我就按这个顺序来
为了以后能快速复用,我给自己留下这份操作清单:
- 先找现成信息。 能看电视网络设置就先看;不能看,就查路由器的设备列表。
- 查看电脑已有记录。 运行
arp -a,找旧 IP 和可能对应的网卡地址,但不把缓存当作在线证明。 - 优先检查已有线索。 用
nc -zv -G 2 192.168.15.180 5555检查旧地址,直接读取结果。 - 确实不确定地址时再扫描。 使用带进度提示的循环,并根据当前网络修改地址范围。
- 等扫描结束。 中途看到
.55,不要立刻下结论说没有.180。 - 验证服务和身份。 使用 ADB 连接、查看状态,再读取型号和系统版本。
- 记录当次证据。 保存时间、IP、端口、连接状态和型号,避免把旧结果当成当前状态。
这次已经确认和仍然未知的部分,也值得一起记住:
| 观察或记录 | 目前可以得出的结论 |
|---|---|
| 此前通过 Wi-Fi 读取到型号和系统版本 | 当时网络与 ADB 至少曾经能够正常通信 |
arp -a 中有 .180 与网卡地址的对应记录 |
电脑缓存里保存了这个对应关系 |
扫描输出发现 .55 的 5555 开放 |
当次检查能连接该地址的这个端口 |
当时尚未看到 .180 的扫描结果 |
扫描仍在运行,不能提前判定 .180 没有开放端口 |
| 后来确认确实还在扫描 | 最初"命令不行"的疑惑,至少包含了对等待过程的误解 |
曾经出现 offline |
当时 ADB 通信不正常,具体原因尚未确认 |
| 没有完成桌面恢复 | 不能写成"电视已经修好" |
十四、给未来自己的记录模板
以后每次连接设备,都可以复制下面这段填写。已有的旧信息不要直接当作"今天已验证"的结果。
text
检查日期和时间:
设备名称:
设备型号:
系统版本:
当前核实的 IP:
ADB 端口:
网卡地址(如有):
IP 信息来源:电视设置 / 路由器 / 邻居记录 / 扫描 / 其他
端口检查结果:
ADB 连接状态:
本次是否成功读取型号:
本次执行过的修改操作:
尚未解决的问题:
如果不希望地址经常变化,还可以在路由器支持的情况下,为电视设置 DHCP 地址保留,让它按记录获得相同地址。不同路由器的设置方式不同,需先确认对应的是自己的电视和当前使用的网卡。
本文用到的地址是家庭局域网地址,别人不能仅凭它从互联网直接访问我家的电视。不过公开终端截图时,我仍然可以裁掉无关的设备名称、完整网卡地址和其他家庭设备记录。
这次最有价值的一刻,是发现终端并没有"失灵",而是在按顺序做事。我需要做的,是知道它正在检查什么、什么时候算结束,以及每一种输出到底能证明到哪一步。
下一次再看到一个 IP、一串网卡地址或一行 offline,我就有办法把问题拆开,而不是只剩下一句"怎么连不上"。
查阅资料与本地帮助
本文的实际经历来自本次终端输出和交流记录;ADB 的通用用法可对照 Android Developers:ADB 官方文档,工具下载可使用 官方 SDK Platform-Tools 页面。
Mac 上也可以直接查本机工具帮助:
sh
man arp
sh
man nc
打开帮助后,按空格翻页,按 q 退出。本机帮助中的选项说明,通常比照搬其他系统的命令更贴合当前环境。