Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour détecter l'IP utilisée et l'IP inutilisée d'un certain segment de réseau

Comment utiliser Python pour détecter l'IP utilisée et l'IP inutilisée d'un certain segment de réseau

高洛峰
高洛峰original
2017-03-22 10:11:001711parcourir

J'ai appris des blogs de mes prédécesseurs et j'ai ensuite ajouté beaucoup de choses moi-même.

Le module de sous-processus est utilisé

>>> importer le sous-processus

>>> =subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=True)

#Obtenir le code de retour du résultat de l'exécution de la commande via la fonction wait()

>>> p.wait()

0

#Obtenir le résultat de la commande (sortie standard) via la méthode read()

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

# Obtenez le résultat de la sortie d'erreur de commande via la méthode read()

>>> ()                                                                                        Est vide, ce qui indique qu'il n'y a pas de sortie d'erreur

#Get sortie d'erreur

objet

à 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 : impossible d'accéder à /etc/password : aucun fichier ou répertoire de ce type

@D'autres moyens d'obtenir une sortie d'erreur sont : read() ,

readline

(), readlines(), close(), write() et writelines(), etc.

#!/usr/bin/env

python

#_*_ coding:utf8 _*_

# par lijiajunimport re,subprocess,os,sys

net_region ='192.168.3'

imprimer

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

print("#Ce script est principalement basé sur le ping, testant l'IP utilisée et l'adresse IP inutilisée d'un certain segment de réseau Utilisez l'adresse IP #")

print("#Enregistrez-le dans /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")

print "vous peut voir l'adresse IP utilisée dans ce fichier : /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 "vous pouvez voir l'ip inutilisée dans ce fichier : /tmp/dead_ip.txt"

print( " ")

dead_ip=0

alive_ip=0

def check_alive(ip,

count

,

time

out) :

global Alive_ip global Dead_ip cmd='ping -c %d -w %d %s' % (count,timeout,ip)

p=sous-processus. Popen(cmd,

stdin=subprocess.PIPE,

stdout=subprocess.PIPE,

stderr=subprocess.PIPE,

shell=True)

result=p.stdout.read()

regx=re.findall('100% packet loss',result)

if len( regx)==0 :

print("

check_alive(ip,1,1)

print ("  ")

print "final le nombre d'ips morts est %d" % dead_ip

imprimer "le nombre final d'ips vivants est %d" % vivants_ip

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn