2011-08-08 34 views
3

所有活動的機器我怎樣才能找到我的局域網上的所有當前活動的機器的IP地址?我怎樣才能編寫一個適用於任何子網的通用程序?找出IP網絡

我這樣做是目前:

  1. 試圖如果isReachable()達到我的子網中的所有machins。
  2. 如果他們這樣做,他們保存的IP地址。

有沒有辦法做到這一點,手動進入子網掩碼(增加IP地址),因此到達所有的機器(從而得到他們的IP)?

+0

可能重複[如何連接在局域網中使用Java IP列表](http://stackoverflow.com/questions/3345857/how-to-get-list-of-ip-connected-in -lan-使用-java的) –

回答

2

您應該向子網中的所有主機發送ICMP回顯消息。例如,如果您的子網是192.168.1.0/24,則將ICMP ping發送到192.168.1.255,並且所有主機都會響應。

[06:43:11 :~]$ ping 192.168.0.255 
PING 192.168.0.255 (192.168.0.255): 56 data bytes 
64 bytes from 192.168.0.12: icmp_seq=0 ttl=64 time=0.159 ms 
64 bytes from 192.168.0.1: icmp_seq=0 ttl=64 time=5.581 ms 
64 bytes from 192.168.0.12: icmp_seq=1 ttl=64 time=0.135 ms 
64 bytes from 192.168.0.1: icmp_seq=1 ttl=64 time=5.540 ms 
^C 
--- 192.168.0.255 ping statistics --- 
2 packets transmitted, 2 packets received, +2 duplicates, 0.0% packet loss 
round-trip min/avg/max/stddev = 0.135/2.854/5.581/2.707 ms 
[06:43:21 :~]$ 
0

您可以使用DNS,動態DNS,WINS,LDAP或Active Directory中的每臺計算機來存儲它的IP地址是一箇中央存儲庫。您可以查詢此存儲庫以查找本地網絡的所有IP地址。

但是,如果你沒有這樣的資源庫,您需要掃描您的網絡IP地址等不會任何黑客。