所以我要做的核心事情是从同一网络上的另一台PC获取磁盘空间。
我使用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$
正如你可能会注意到我只是真正了解这些协议的新手,所以我希望有人能像我7岁那样向我解释这个。或任何信息表示赞赏!
答案 0 :(得分:3)
我对php一无所知,但似乎回答这个问题你不需要PHP知识......希望这会有所帮助:
1。这个'url'用什么协议连接?
这称为UNC Path。查看wiki: Path (computing)
的更多详情引用:
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 Knowledge Base
3。对于您的上一个问题,“在UNC路径中传递UNC用户名和密码”
SuperUser上有类似问题的答案。
的回答在Windows上,无法将凭据放入UNC路径中。您必须使用net use
,runas /netonly
或Windows提出要求时提供这些内容。 (如果您有一些编程技能,可以使用CredWrite()
将SMB密码存储为“域凭据”,这相当于检查Windows中的“记住密码”框。)
在Linux上,它取决于程序。
GNOME的Gvfs接受user@host
语法,但似乎完全忽略了密码。 (但是,您可以事先将它存储在GNOME Keyring中。)
smbclient
使用与Windows相同的UNC语法;但是,它有一个--authentication-file
选项,可以从中读取凭据。
上述两个程序都使用 libsmbclient ,并且可以使用Kerberos身份验证而不是密码:运行kinit user@YOUR.DOMAIN
并使用smbclient -k //host/share
。这比密码验证更安全。
请注意,不建议将密码放入URI中,并且您不应该依赖它支持。