ホームページ >バックエンド開発 >Python チュートリアル >Pythonを使用して特定のネットワークセグメントの使用済みIPと未使用IPを検出する方法

Pythonを使用して特定のネットワークセグメントの使用済みIPと未使用IPを検出する方法

高洛峰
高洛峰オリジナル
2017-03-22 10:11:001731ブラウズ

先人たちのブログから学び、自分で多くのことを追加しました。

サブプロセスモジュールを使用します

>>> import subprocess

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

#wait()関数でコマンド実行結果のリターンコードを取得

>>> p.wait()

0

#Get read() メソッドによるコマンド出力結果 (標準出力)

>>> p.stdout.read()

'Filesystem Size Used Avail Use% Mounted onn/dev/sda1 18G 11G 5.8G 65 % /ntmpfs 495M 0 495M 0% /dev/shmn'

#read() メソッドを通じてコマンド エラー出力を取得します

>>> p.stderr.read()

''

#空で、エラーがないことを示します。 Output

#Get error Output

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: そのようなファイルまたはディレクトリはありませんn '

@エラー出力を取得する他の方法には、read()、readline()、readlines()、close()、write()、writelines() などがあります。 #!/usr/bin/env

python

#_*_coding:utf8 _*_

# by lijiajun

import re,subprocess,os,sys

net_region='192.168.3'

print

("#### ########################################## ###### ###")print("#このスクリプトは主に ping に基づいており、特定のネットワーク セグメントの使用済み IP と未使用 IP をテストします #")

print("#これらを / に保存しますtmp/alive_ip.txt それぞれ # ")

print("#AND/tmp/dead_ip ############################## #")

print(" ")

if

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

os.popen("mv /tmp/alive_ip.txt /tmp/alive_ip. txt.old") print "このファイルで使用されている 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,

count

,

time

out):グローバルalive_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:

print("

check_alive(ip,1,1)

print (" ")

print "final Dead_ip 数は %d" % Dead_ip

print "最終のalived_ip 数は %d" % live_ip

以上がPythonを使用して特定のネットワークセグメントの使用済みIPと未使用IPを検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。