2011-03-04 46 views
0

我寫一個C#的WinForms程序來獲取所有連接到我的局域網,基於給定的IP地址範圍的計算機。如何根據IP地址範圍獲取僅限LAN上的計算機?

我使用Ping類識別的計算機。 但這裏的問題是我從所有連接到局域網的設備(打印機,IP電話等)獲取響應。

請幫我過濾這些設備並從LAN只得到電腦。

+1

有不訴諸其他的東西,如SNMP和AD在Windows講的沒有真正的方法和他們不是100%。例如,NMAP試圖做一些指紋印刷。 – Lloyd

+0

你試圖完成什麼?一旦你找到了網絡上的所有電腦,你想做什麼?你對他們正在運行的操作系統感到困擾嗎? – Nick

回答

3

這是不可能使用PING網絡節點是否是計算機/打印機/ IP電話告訴等等

您將需要使用像NETBIOS或DNS更高級別的協議來解決這一問題,但它非常依賴關於如何實現這些設備。

+0

我使用DNS來獲取主機名,但我不確定如何區分使用Dns的設備。 – Prasad

+0

我不確定:)這取決於所用的命名約定是否反映了設備的類型。 – Nick

0

好吧,有機會,打印機,電話等在他們的通用計算機上運行TCP/IP堆棧和一些專門的服務器軟件,所以它歸結爲你的一個什麼樣的「電腦」是定義。儘管如此,這聽起來像是比它的價值更麻煩,除非你能夠確定只有你認爲計算機會有的東西,而且它們都會有。在Windows網絡上,SMB也許 - 但這可能會捕獲一個通過SMB暴露存儲的NAS。

我不認爲有做你想做的事的一般方法。就像Lloyd指出的那樣,nmap做了一些指紋識別,但是這並不完美(它通常會非常接近特定的操作系統版本,但它不能說明哪種物理設備正在運行該操作系統)。

+0

那麼有沒有其他方法可以找到?我試過用netapi32,但它需要指定域名,因爲我想列出所有的系統,而不管域/工作組我不能使用這個。我無法使用活動目錄服務,因爲我沒有所需的憑據。 – Prasad

相關問題