1
idealhs 2021-01-25 08:41:16 +08:00
啊这,你试一下不就完了么
|
2
0TSH60F7J2rVkg8t 2021-01-25 08:50:46 +08:00 via iPhone
smb://电脑主机名 访问,使用的是 arp 协议,通过 arp 广播,查找 mac 和 ip 对应的主机,随后进行通信。此协议是以太网协议,没有 dns 参与,路由器无需设置 dns
|
3
dier 2021-01-25 09:21:58 +08:00
直接在路由器上 DHCP 设置里为 Android 设备(或者任意想要固定 IP 的设备)的 MAC 地址静态绑定一个 IP 就不会变了,主机名有时可能也会修改导致旧的连不上。另外 #2 说得没错 ARP 只在二层交换,不需要 DNS
|
4
sujin190 2021-01-25 10:04:32 +08:00
@ahhui #2 你这前面主机名,后面 ip,驴唇不对马嘴了吧
其实 windows 这个局域网主机名可以访问似乎试 NetBIOS 的 NBNS 服务提供的吧,其实也就是网络发现,Android 的话自己就没原生支持 smb,具体怎么查找本地网络就看安装的 smb 软件怎么实现了,ios 没用过不清楚,不过估计输入主机名估计在手机上就是走 dns 解析的,一般路由也不支持设置自定义解析吧,openwrt 的话可以在 dnsmasq 添加一条解析记录就好了 |
5
yutou527 2021-01-25 11:51:18 +08:00
他说的应该是“查找主机对应的 MAC 和 IP”
|
6
JankinZhang OP 路由器丢学校了 热点试了试貌似不行
|
7
JankinZhang OP @idealhs 路由器丢学校了 热点试了试貌似不行
|
8
0TSH60F7J2rVkg8t 2021-01-25 12:23:18 +08:00
@yutou527 #5 我在 2 楼的回复确实错了,arp 是 ip 和 mac 地址之间互相转换查找的协议,如 @sujin190 #4 所说,楼主的问题是 NetBIOS 协议负责完成的。查了下,NetBIOS 好像是 Windows 在用,不确定 Android 有没有使用,所以楼主 @JankinZhang #6 提到的,测试没有成功。
抱歉,我之前的回复是错的。有关 NetBIOS 的说明,可查看: https://support.microsoft.com/en-us/topic/microsoft-tcp-ip-host-name-resolution-order-dae00cc9-7e9c-c0cc-8360-477b99cb978a https://en.wikipedia.org/wiki/NetBIOS |
9
AoTmmy 2021-01-25 12:26:14 +08:00 via Android
不知道为什么我的 iPad 连接 smb://ip 一直失败,只能用 smb://主机名
|
10
JankinZhang OP @ahhui 连路由器试了试 win10ipv4 是 192.168.1.143 ipad 是 192.168.1.144
使用 ipad 自带的 文件-连接服务器-smb://192.168.1.134 可以正常访问 win10 的共享文件夹 smb://+电脑名称 也不行 |
11
JankinZhang OP 倒是 Android 使用 ES 文件浏览器-网络-局域网-扫描 可以直接看到 win10 电脑名称
|
12
lin559671 2021-01-25 14:44:48 +08:00 via Android
Windows server 有个叫 wins 的服务,了解下就知道了
|
13
0TSH60F7J2rVkg8t 2021-01-25 14:59:05 +08:00
@JankinZhang 因为这里有 2 个问题,1 个是查找主机名对应的 ip 地址,另外一个是 smb 连接这个 ip 地址。貌似 android 没有实现 NetBIOS 的 Client 协议,所以在查找主机名的时候,直接问 DNS 了,于是就查不到了。ES 文件浏览器的扫描使用的是网络设备发现协议,那是另外一个问题了。
我想到个比较简单的方法实现你的功能,在计算机上使用一个计划任务,检测局域网 ip 地址,如果是某个范围内,更新路由器的 hosts 文件(或者 dns 记录),可能需要配合路由器的 ssh 或者 telnet 协议登录,而且前提是路由器使用的是 OpenWrt 等开源固件。 |
14
jim9606 2021-01-25 16:09:40 +08:00 via Android
这个功能需要路由器支持,例如 openwrt 会自动将 dhcp 租约列表的主机名加入到內建的 dnsmasq 解析列表,这种情况你确保手机使用路由器作为 dns 服务器即可。
另一种方法是使用 mdns,用"主机名.local"访问,不过 android 默认不支持这个。 |
15
docx 2021-01-26 03:50:10 +08:00 via iPhone
就是 hostname 吧
|