2010-07-12 6 views
2

파이썬에서 동일한 네트워크에있는 다른 장치 (또는 그 프로그래밍 언어)를 볼 수 있습니까?파이썬에서 프로그래밍 방식으로 네트워크상의 다른 컴퓨터보기

편집 : 설명을 위해, 내가 시작하기를 원하는 것은 연결된 장치 목록과 로컬 IP 주소를 표시하는 것입니다.

family_pc, 192.168.1.2 work_laptop, 192.168.1.3

나는이 정보를 검색하고 싶습니다

: 그래서 내 라우터, 그것은 정보를 보여 드리겠습니다.

답변

6

정확히 무엇을하려합니까?

nmap은 네트워크 스캔을위한 매우 일반적인 도구입니다. 원하는대로 할 수 있습니다. 또한 python-nmap 패키지가있어서 Python에서 직접 nmap을 쉽게 사용할 수 있습니다.

더 자세히 알려주십시오. 더 나은 답변을 제공 할 수 있도록 축하해주세요.

+0

원래의 코멘트가 – tipu

+0

으로 업데이트되었습니다. nmap이 그렇게 할 것이므로, 앞서 언급 한대로 python-nmap을 살펴보십시오. – Bartek

3

여기에 몇 가지 옵션이 있습니다.

전체 네트워크 주소 공간에서 포트 스캔을 실행할 수는 있지만 상당히 낭비적이고 비우호적입니다. 나는 그것을 추천하지 않는다.

더 좋은 방법은 DNS-SD/Zeroconf (일명 Bonjour)과 같은 서비스 검색 프로토콜을 사용하는 장치를 쿼리하는 것입니다. 대부분의 Linux 및 Mac 시스템은 많은 네트워크 프린터 및 기타 네트워크 장치와 마찬가지로 반응합니다. Windows 시스템에는 DNS-SD 에이전트가 제공되지 않지만 하나는 설치 될 수 있습니다.

DNS-SD의 순수한 python 구현은 available here입니다. Linux, MacOS 및 Windows에서 사용했습니다.

Microsoft의 접근 방식을 선호하는 경우 UPnP의 검색 기능을 사용해 볼 수 있지만 작동 방식이나 응답하는 시스템 수를 보증 할 수는 없습니다.

+0

순수 파이썬 구현은 [여기] (https://github.com/paulsm/pyzeroconf)라고 생각합니다. – Gerrat

+0

그 repo는 버려진 것처럼 보입니다. 다음은 최신 소스입니다. https://github.com/jstasiak/python-zeroconf https://github.com/wmcbrine/pyzeroconf https://pypi.python.org/pypi/zeroconf/ –

-1

작은 타사 소프트웨어를 사용하는 데 신경 쓰지 않는다면 Windows 시스템에서 제대로 작동하는 Netresview을 사용할 수 있습니다. 휠과 그 모든 것을 다시 작성하지 마십시오. 당신은 이런 종류의 일을 할 수 있습니다.

os.system('NetResView.exe /DisplayComputers 1 /RetrieveIPAddresses /stext ipfile') 
my_file = open('ipfile') 
for line in my_file : 
    print myfile.readline() 
관련 문제