2017-01-31 5 views
0

これらの処理を行うPythonスクリプトの作成を手伝ってもらえますか?私は物事を自動化する方法を学ぼうとしています。テキストファイルへサブネット上で使用可能なIPアドレスの数を自動化するためのPythonスクリプト

実行nmapのクイックスキャンおよびエクスポート:IPのリストに

nmap -T4 -F 10.0.0.1/24 > nmap.txt 

カットテキスト:

cat nmap.txt | grep "Nmap scan report" | awk '{print $5}' | cut -d '.' -f 4 > ip_sub.txt 

が可能ホストのリストを作成します(1〜255からリスト):

python -c 'for i in range(255): print i+1' > ip_all.txt 

diffを準備するためにファイルを並べ替えてください(先にこれを行うことができました):

cat ip_all.txt | sort -n > ip_all_sort.txt 
cat ip_sub.txt | sort -n > ip_sub_sort.txt 

列の差分ファイルを作成します:pythonにnmapのをインストールして

grep '<' -o ip_sub_all_diff.txt | wc -l 
+3

ご自身のご質問はありますか? –

+0

これは機能しませんか?予想される行動と実際の行動は何ですか? – RobertB

+0

すべてのネットワークが使用可能なホストアドレスが254(255ではない)の '/ 24'ネットワークであるわけではありません。例えば、 '/ 8'ネットワークは16,777,214使用可能なホストアドレスを与えます。 IPv6になると、ネットワークの標準サイズは '/ 64'であり、ネットワークあたり18,446,744,073,709,551,616の使用可能なアドレス(IPv6ネットワーク上のすべてのアドレスが使用可能です)です。 –

答えて

0

スタート:どのように多くの未使用のIPアドレスを数え、今

diff -y ip_all_sort.txt ip_sub_sort.txt > ip_sub_all_diff.txt 

を。

pip install python-nmap 

使い方は次のようになります。

import nmap 

nm = nmap.PortScanner() 
nm.scan('10.0.0.1') 
res = nm.all_hosts() 
print res 

この方法であなたは、ファイルの一部をテキストに、全体書き込みをスキップすることができます。 resには、grepパーツに正規表現を使用できる情報が含まれているため、forループで結果を繰り返し処理します。

+0

これはまさに私が探していたものです!、ありがとう、@Rizzit。 –

関連する問題