シスコルータにコマンドを実行し、IPのリストをテキストファイルに書き込むプログラムを作成しようとしています。すべてのIPをファイルに書き込んだ後、すべてのIPを正常に取得できます。今私が困っている部分は、リストからどれだけのIPを得るのか分からないということです。ファイルから取得した各IPをユーザー定義のIPと比較したいので、IPの数に基づいて動的変数を作成するか、またはすべてのIPを繰り返してユーザーのIPと比較する方法が必要です。リスト/アレイのlenに基づいて動的変数を作成する
import re
import ipaddr
userIP = raw_input('Enter IP address to compare i.e, 10.10.10.0/24:')
ipFile = ("router.com.txt")
found = []
with open(ipFile, 'r') as f:
for text in f.readlines()[1:]: #File had a blank line so this skips it
text = text.rstrip()
regex = re.findall(r'(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\.(?:[\d]{1,3})\/(?:[\d]{1,3})', text)
#print regex
found.append(regex)
print found
print len(found) - 1
これは、私はそれを実行したときに、私が得るものです:
[['10.10.20.192/27'], ['10.10.40.0/24'], []]
2
今、私は苦労していますハードの部分は、私は、変数userIP動的でこれらのそれぞれを比較することができる方法です。
#if userIP.overlaps(found):
#print "Overlapping IPs!!"
#else:
#print "Does not Overlap!!"
おかげ デイモン
Python 3.3を使用している場合は、組み込みの['ipaddress'](https://docs.python.org/3/library/ipaddress.html#ipaddress.IPv4Network.compare_networks)ライブラリを使用できるようです+。しかし、Py2.7ではバックポートパッケージがあります。https://pypi.python.org/pypi/py2-ipaddress –
ipaddr.pyを使用していて、うまく動作しています。動的変数の部分に助けが必要 – Damon
"動的変数"とはどういう意味ですか? – martineau