Maison >développement back-end >Tutoriel Python >Comment utiliser Python pour détecter l'IP utilisée et l'IP inutilisée d'un certain segment de réseau
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
à 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() , (), readlines(), close(), write() et writelines(), etc. #!/usr/bin/env # par lijiajunimport re,subprocess,os,sys net_region ='192.168.3' ("############################ #### #####################") 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(" ") 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, , 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!