2011-08-08 7 views
3

LAN상의 현재 활성화 된 모든 머신의 IP를 어떻게 알 수 있습니까? 어떤 서브넷에서 작동 할 수있는 일반 프로그램을 작성하려면 어떻게해야합니까?네트워크상의 모든 활성화 된 머신의 IP를 확인하십시오.

나는이 현재하고 있어요 :

  1. 을의 isReachable()가 내 서브넷에있는 모든 machins에 도달하면 시도.
  2. 그렇다면 IP 주소를 저장하십시오.

수동으로 서브넷 마스크 (자신의 IP를 얻을 때문에)합니다 (IP 요지를 증가) 따라서 모든 기계에 도달를 입력하는이 다른 작업을 수행 할 수 어쨌든 있나요?

+0

가능한 중복 (http://stackoverflow.com/questions/3345857/how-to-get-list-of-ip-connected-in [LAN 사용하여 Java로 연결 IP 목록을 얻는 방법] -lan-using-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, DynamicDNS, WINS, LDAP 또는 Active Directory를 사용하여 IP 주소를 중앙 저장소로 저장할 수 있습니다. 이 저장소를 쿼리하여 로컬 네트워크의 모든 IP 주소를 찾을 수 있습니다.

그러나 이러한 리포지토리가 없으면 해커처럼 네트워크 IP 주소를 검사해야합니다.

관련 문제