2013-10-22 44 views
1

所以我試圖做的核心事情是從同一網絡上的其他PC獲取磁盤空間。同一網絡上的設備的磁盤空間

我使用PHP函數disk_total_space()這一點。我正在使用連接字符串\\192.168.0.1\c$

所以我總共將有:

disk_total_space('\\\\192.168.0.1\\c$'); 

但是我對這個連接字符串一些問題開始:

  1. 用什麼協議,這是否「URL」連接?
  2. 爲什麼它在驅動程序的最後需要一個$?

現在我還需要給用戶名和密碼與我的連接字符串。不過,我不知道如何將這與我有的連接字符串相融合。 我試着用ftp協議和https協議給用戶名和密碼,但似乎沒有任何工作。

https:\\\\username:[email protected]\\\\192.168.0.1\\c$ 
ftp:\\\\username:[email protected]\\\\192.168.0.1\\c$ 

正如你可能已經注意到我只是新來真正瞭解這些協議,所以我希望我是個7歲的任何人都可以給我講解一下。或者任何信息被讚賞!

+0

這不起作用,請參閱您鏈接自己的php文檔:注意:由於要檢查的文件必須可通過服務器的文件系統訪問,因此此功能不適用於遠程文件。 – mensi

回答

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的類似問題。

報價回答@grawity's answer

在Windows上,你無法把憑據的UNC路徑。您必須使用net use,runas /netonly或當被Windows詢問時提供它們。 (如果你有一些編程技巧,你可以存儲在SMB密碼爲「域憑據」使用CredWrite(),這相當於檢查Windows中的「記住密碼」複選框。)

在Linux上,這取決於程序。

  • GNOME的Gvfs接受[email protected]語法,但似乎完全忽略了密碼。 (但是,您可以預先將其存儲在GNOME Keyring中。)

  • ​​使用與Windows相同的UNC語法;但是,它有一個--authentication-file選項,可從中讀取憑據。

  • 上述兩個程序都使用libsmbclient,並能使用Kerberos身份驗證,而不是密碼:運行kinit [email protected],並使用smbclient -k //host/share。這比密碼認證更安全。

注意把密碼進入的URI已被棄用,你不應該依賴於它支撐隨時隨地

+0

哇!非常感謝!我實際上已經通過創建API來共享信息來解決它。但這是肯定有用的信息,否則我永遠不會知道! – nkmol