>  기사  >  백엔드 개발  >  Python을 사용하여 특정 네트워크 세그먼트의 사용된 IP와 사용되지 않은 IP를 감지하는 방법

Python을 사용하여 특정 네트워크 세그먼트의 사용된 IP와 사용되지 않은 IP를 감지하는 방법

高洛峰
高洛峰원래의
2017-03-22 10:11:001696검색

선배님들의 블로그를 통해 배우고 직접 추가한 내용도 많습니다.

하위 프로세스 모듈이 사용됩니다

>>> import subprocess

>>> p = subprocess.Popen('df -h',stdin =subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)

#wait()함수를 통해 명령 실행 결과의 반환 코드를 가져옵니다

>>> p.wait()

0

#read() 메소드를 통해 명령 출력 결과(표준 출력) 가져오기

> > 95M 0 495M 0% /dev/shmn'

#read() 메소드를 통해 명령 오류 출력 결과 가져오기

>>> ()                                                                                             비어 있어 출력이 없음을 나타냅니다

#오류 출력 가져오기

object

at 0x7f267528dbd0>

> ;>> p = subprocess.Popen('ls /etc/password',stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True,close_fds=True)

>> > p.stderr.read()'ls: /etc/password에 액세스할 수 없습니다. 해당 파일이나 디렉터리가 없습니다.'

@오류 출력을 얻는 다른 방법은 다음과 같습니다. : read() ,

readline

(), readlines(), close(), write() 및 writelines() 등

#!/usr/bin/env

python

#_*_ 코딩:utf8 _*_

# by lijiajunimport re,subprocess,os,sys

net_region ='192.168.3 '

인쇄

("########################## #### ####################")

print("#이 스크립트는 주로 ping을 기반으로 하며 사용된 IP를 테스트합니다. 및 특정 네트워크 세그먼트의 미사용 IP #")

print("#/tmp/alive_ip.txt에 저장                     #")print("#and/tmp/ dead_ip.txt                          #")

print("################################# ##### ###############")

print(" ")

if

os.path .isfile("/ tmp/alive_ip.txt"):

os.popen("mv /tmp/alive_ip.txt /tmp/alive_ip.txt.old")

인쇄 "당신 이 파일에서 사용된 IP를 볼 수 있습니다: /tmp/alive_ip.txt"if os.path.isfile("/tmp/dead_ip.txt"):

os.popen(" mv /tmp/dead_ip .txt /tmp/dead_ip.txt.old")

print "이 파일에서 사용되지 않은 IP를 볼 수 있습니다: /tmp/dead_ip.txt"

print( " ")

dead_ip=0

alive_ip=0

def check_alive(ip,

횟수

,

시간

out):

전역 살아있는_ip 전역 dead_ip cmd='ping -c %d -w %d %s' %(수,시간초과,ip)

p=subprocess.Popen(cmd,

stdin=subprocess.PIPE,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE,

shell=True)

result=p.stdout.read()

regx=re.findall('100% 패킷 손실',result)

if len( regx)==0 :

인쇄("

check_alive(ip,1,1)

print ("  ")

print "final dead_ip 개수는 %d" % dead_ip

"최종 살아있는_ip 수는 %d"를 인쇄합니다. % 살아있는_ip

위 내용은 Python을 사용하여 특정 네트워크 세그먼트의 사용된 IP와 사용되지 않은 IP를 감지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.