因此,我要做的核心事情是从同一网络上的其他设备获取磁盘空间。
我为此使用PHP函数disk_total_space()。我正在使用连接字符串\\192.168.0.1\c$
。
因此,总的来说,我将拥有:
disk_total_space('\\\\192.168.0.1\\c$');
但是,从这个连接字符串开始,我有一些疑问:
现在,我还需要在连接字符串中输入用户名和密码。但是我不知道如何将其与我拥有的连接字符串融合在一起。我试图通过FTP协议和HTTPS协议提供用户名和密码,但似乎都没有用。
https:\\\\username:password@\\\\192.168.0.1\\c$
ftp:\\\\username:password@\\\\192.168.0.1\\c$
您可能会注意到,我对这些协议还是陌生的,所以我希望任何人都可以向我解释一下。
我对php一无所知,但似乎想回答这个问题就不需要php知识了。希望对您有所帮助:
1.此“ URL”通过什么协议连接?
这称为UNC路径。从Wiki中查看更多详细信息:路径(计算)
引用:
A UNC path describes the location of a volume, directory, or file. The format for a UNC path is \\server\volume\directory\file and is not case-sensitive.
2.为什么在驱动程序末尾需要$?
$
隐藏共享的立场,请参阅Microsoft知识库中的更多内容。
3.对于最后一个问题,“在UNC路径中传递UNC用户名和密码”
在SuperUser上有一个类似问题的答案。
在Windows上,您不能将凭据放在UNC路径中。您必须使用net use
,runas /netonly
或Windows要求时提供它们。(如果您具有一些编程技能,则可以使用来将SMB密码存储为“域凭据” CredWrite()
,这等同于选中Windows中的“记住密码”框。)
在Linux上,它取决于程序。
GNOME的Gvfs接受[email protected]
语法,但似乎完全忽略了密码。(但是,您可以事先将其存储在GNOME密钥环中。)
smbclient
使用与Windows相同的UNC语法;但是,它具有--authentication-file
从中可以读取凭据的选项。
上面的两个程序都使用libsmbclient,并且可以使用Kerberos身份验证代替密码:run kinit [email protected]
and use smbclient -k //host/share
。这比密码身份验证更安全。
请注意,不建议将密码放入URI中,并且您不应该依赖任何地方都支持密码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句