假設我正在用.net編寫一個程序,它必須儘可能準確地確定運行該程序的計算機的位置。該計劃將運行在世界各地的辦事處。如何確定運行我的.net代碼的PC的位置?
以下是我的一些想法。
首先,我列出了安裝在每個辦公室的網絡打印機列表。通過列舉已配置的網絡打印機列表(在.net中不太難),並將它們與每個辦公室安裝的網絡打印機列表進行比較,我可以做出一個有根據的猜測,即如果一臺計算機配置爲使用我的打印機組織的倫敦辦事處,那麼電腦很可能在倫敦辦公室運行。
其次,我可以使用IP地址。假設我的組織在每個辦公室都有一個IP地址塊,我可以根據其IP地址來推斷計算機的位置,這可通過.net中的WMI類訪問。
但是,有人告訴我,如果我的程序能夠確定計算機在哪個房間,那將是非常好的。據我所知,沒有傳統的計算機可以在沒有特殊設備(如GPS或RFID)過於昂貴。
如果我沒有弄錯,某些網絡設備可能配置爲根據計算機連接到網絡設備的位置來分配IP地址。 (連接到哪個端口?)這種方法的明顯缺點是需要在遠端地點與IT人員合作。
我正在尋找最實用的方法來儘可能準確地確定運行我的.net代碼的PC的位置。
說明:一些電腦是筆記本電腦。儘可能地,我們想知道每次程序運行時筆記本電腦的位置。這意味着靜態IP不是一個實際的解決方案。僅僅建立關於每臺PC的信息數據庫並不是一個解決方案,因爲我們正試圖儘可能自動地找出PC從一個房間移動到另一個房間的時間。
http://technet.microsoft.com/en-us/library/cc755430%28WS.10%29.aspx –
你瞄準的是什麼精度的粒度?房間號?只是一個辦公室?位置?兩臺電腦在不同地點的區別因素是什麼? – sharjeel