2011-12-13 51 views
1

假設我正在用.net編寫一個程序,它必須儘可能準確地確定運行該程序的計算機的位置。該計劃將運行在世界各地的辦事處。如何確定運行我的.net代碼的PC的位置?

以下是我的一些想法。

首先,我列出了安裝在每個辦公室的網絡打印機列表。通過列舉已配置的網絡打印機列表(在.net中不太難),並將它們與每個辦公室安裝的網絡打印機列表進行比較,我可以做出一個有根據的猜測,即如果一臺計算機配置爲使用我的打印機組織的倫敦辦事處,那麼電腦很可能在倫敦辦公室運行。

其次,我可以使用IP地址。假設我的組織在每個辦公室都有一個IP地址塊,我可以根據其IP地址來推斷計算機的位置,這可通過.net中的WMI類訪問。

但是,有人告訴我,如果我的程序能夠確定計算機在哪個房間,那將是非常好的。據我所知,沒有傳統的計算機可以在沒有特殊設備(如GPS或RFID)過於昂貴。

如果我沒有弄錯,某些網絡設備可能配置爲根據計算機連接到網絡設備的位置來分配IP地址。 (連接到哪個端口?)這種方法的明顯缺點是需要在遠端地點與IT人員合作。

我正在尋找最實用的方法來儘可能準確地確定運行我的.net代碼的PC的位置。

說明:一些電腦是筆記本電腦。儘可能地,我們想知道每次程序運行時筆記本電腦的位置。這意味着靜態IP不是一個實際的解決方案。僅僅建立關於每臺PC的信息數據庫並不是一個解決方案,因爲我們正試圖儘可能自動地找出PC從一個房間移動到另一個房間的時間。

+0

http://technet.microsoft.com/en-us/library/cc755430%28WS.10%29.aspx –

+0

你瞄準的是什麼精度的粒度?房間號?只是一個辦公室?位置?兩臺電腦在不同地點的區別因素是什麼? – sharjeel

回答

0

靜態私有IP地址配置到計算機中,而不是等待DHCP租用一個。

如果您打算使用打印機方式,計算機仍然可以在沒有程序注意的情況下移動。這與安裝過程中它詢問你的位置是相同的(哪一種方式更容易)

如果這是DRM的嘗試,請停止。如果你想知道你可以得到一個GPS的位置,儘管它很可能會被欺騙,如果有必要。

+0

這不是對DRM的嘗試。這是爲了我們知道屬於我的組織的計算機位於何處。 –

+0

我認爲Active Directory等技術通常用於這類事情。但是,是的,這將是一個手動的努力來維護這個數據庫的地方.. –

2

我們通過維護PC名稱和相關房間/用戶的列表以及數據庫中分配的IP地址來完成此操作。

這是一個維護頭痛,但它是唯一可行的解​​決方案來獲得這種水平的細節。而且,不用一天,它只與數據輸入一樣準確,所以如果它保持真正的重要性,則需要對它進行維護和預定。

+1

PC名稱似乎是最好的方式去如果你需要它的細節。也許如果你幸運的話,這些系統的名稱已經基於位置結構化了。爲了找到辦公室,可以考慮查看系統加入的Windows域(如果有的話),假設這些不同。 – AVee

+0

@Avee - 好點。良好的命名準則適用於機器名稱,就像變量一樣。 – David

相關問題