需求:同一局域网目标服务器 Mac 名是 tommac,用户 tom,ip:192.168.50.4,本地服务器 Mac 名是 jasonmac,用户 jason.需要把 /Users/tom/Documents/working/purchase.xlsx 复制到 /Users/jasonmac/Documents/working
尝试了 pysmb 和 paramiko 两个库
前者报 not connected,后者报 Error reading SSH protocol banner.总之就是各种连接不上目标服务器.(确认目标服务器已经打开共享,并且在网络里可以访问) 同时我也有点搞不清楚,mac 的计算机名到底应该是 jason 这种,还是 jason.local,似乎尝试了也都错.端口不管是官网范例的 139,还是很多人用的 445 都不行.
stackoverflow 上看了好半天都研究不出,有没有熟悉的朋友说下可能的原因?或者推荐下自己熟悉的库 预先感谢大家!
下面是 pysmb 时候的一段代码(import 部分忽略)
share_name = "jason" user_name = "jason" password = "57777" local_machine_name = "tommac" server_machine_name = "jasonmac" server_ip = "192.168.50.4"
conn = SMBConnection(user_name, password, local_machine_name, server_machine_name, use_ntlm_v2=True) assert conn.connect(server_ip, 139) print('connected')
file_obj = tempfile.NamedTemporaryFile() file_name = file_obj.name file_attributes, copysize = conn.retrieveFile(share_name, "/Documents/working/purchase.xlsx", file_obj) print(copysize) file_obj.close() shutil.copy(file_name, "/Users/tom/Documents/working/purchase.xlsx") conn.close()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.