0

私は、Google スプレッドシートで一連の派手なテキストをフィルタリングし、IP アドレスだけを取得して保存して、後で比較できるようにしようとしています。IE ユーザーが入れる

"Summary: unauthorized ms-rdp traffic
Notes:  SRC_IP: 211.238.202.137   91.212.144.2   92.66.145.194   121.229.128.42   81.162.195.34   81.88.125.86    213.42.28.188   85.21.42.240   94.56.89.117   177.55.40.14   219.69.14.40
SRC_Port:
SRC_Country: US KR IL CN CZ AE RU BR TW
DST_IP: MANY
DST_Port:
DST_Country: US
Campus_Agency:"

スクリプトはすべての scr_ip アドレスを保存し、後で必要に応じてユーザーが 211.238.202.137 のような IP アドレスを入力すると、IP がリストに含まれているかどうかを確認するステートメントが返されます。if ステートメントを試してみましたが、うまくいきませんでした。さまざまなバリエーションを試してみましたが、これは私のスキルセットを少し超えていると思います。私が最も近づいたのは、IPアドレスを取得しましたが、値でソートしたため、元のアドレスと一致しませんでした

4

2 に答える 2

2

すべての IP アドレスのようなテキストを引き出す簡単な正規表現:

import re

ipaddress = re.compile(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}')

addresses = ipaddress.findall(inputtext)
if '211.238.202.137' in addresses:
    print 'We have a match!'

サンプルテキストの場合、.findall()呼び出しは次を返します。

>>> ipaddress.findall(inputtext)
['211.238.202.137', '91.212.144.2', '92.66.145.194', '121.229.128.42', '81.162.195.34', '81.88.125.86', '213.42.28.188', '85.21.42.240', '94.56.89.117', '177.55.40.14', '219.69.14.40']
于 2013-04-09T12:59:09.540 に答える
0
import re

text = """Summary: unauthorized ms-rdp traffic
Notes:  SRC_IP: 211.238.202.137   91.212.144.2   92.66.145.194   121.229.128.42   81.162.195.34   81.88.125.86    213.42.28.188   85.21.42.240   94.56.89.117   177.55.40.14   219.69.14.40
SRC_Port:
SRC_Country: US KR IL CN CZ AE RU BR TW
DST_IP: MANY
DST_Port:
DST_Country: US
Campus_Agency:"""

"""This will store all the ips in the text variable in a list called ips"""
ips = re.findall('(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', text, re.DOTALL)

ipEntered = raw_input('Please enter an IP: ')
if ipEntered in ips:
    print 'The IP you entered is in the list.'
else:
    print 'The IP you entered is not in the list.'
于 2013-04-09T13:00:01.183 に答える