Introduction
이번시간에는 "찌니남편"님께서 방명록을 통해 질문해주신 내용대로, 네트워크 상의 컴퓨터 목록을 가져오는 방법에 대해 소개합니다. 윈도우를 제어하는 작업이다보니 이를 구현하는 방법은 다양하지만 이번시간에는 간단히 .Net Framework상에서 제공하는 기능들을 이용해 네트워크 상에 존재하는 컴퓨터이름, 아이피주소, 연결상태등을 확인하는 방법에 대해 설명드리겠습니다. 아래는 이번시간에 구현할 내용의 결과물 이미지 입니다.
Using Active Directory Services Interfaces
Active Directory Service Interfaces(ADSI)는 여러 네트워크 공급업체들이 제공하는 다양한 디렉터리 서비스의 기능을 이용해 네트워크 자원을 관리하는 디렉터리 서비스 인터페이스 집합으로, 간단하게 네트워크 디렉토리에 접근하고 제어 할 수 있도록 돕습니다. .Net Framework에서도 System.DirectoryServices 네임스페이스를 통해 ADSI를 사용할 수 있기 때문에, 이번시간에는 이를 통해 구현해보도록 하겠습니다.
※ System.DirectoryServices 네임스페이스는 System.DirectoryServices어셈블리를 참조 추가 한 뒤 사용할 수 있습니다.
사용법은 매우 간단합니다. WinNT를 이용해 네트워크영역을 DirectoryEntry를 생성하고 Workgroup을 탐색해가며 네트워크 상에 연결된 컴퓨터의 목록을 가져올 수 있습니다. 아래는 소스코드입니다.
위 코드를 간단히 설명하면, DirecotryEntry를 이용해 네트워크상의 컴퓨터 이름을 가져온뒤 DNS를 이용해 해당 컴퓨터의 IP주소 목록을 가져옵니다. 그리고 Ping을 통해 대상 컴퓨터의 상태와 응답속도를 확인합니다. 소스가 크게 복잡하지 않기 때문에 코드에 대한 설명은 여기까지로 하며, 혹시 더 궁금하신 부분이나 문의 사항은 이메일이나 댓글로 남겨주시면 답변드리도록 하겠습니다.