私は Google から参照を取得して Python スクリプトを作成していました。私のタスクは、IP アドレスのリストを渡し、IP が応答しているかどうかを確認し、応答している場合は、ポート 80 または 443 から応答を取得し、特定のキーワードに一致させることです。応答し、それらの IP アドレスと応答のリストを出力します。今のところ、このプログラムを実行してどのポートが開いているかを取得することしかできませんが、美しいスープを使用して IP アドレスとポートを要求することはできません。
import socket
import re
from bs4 import BeautifulSoup
import requests
f = open('ip_list.txt' , 'r') ## Read File
o = f.read()
ip1 = re.findall(r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}", o )
hosts = ip1
ports = [80,443] ## Include the list of ports which needs to be checked
for host in hosts:
for port in ports:
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(10)
result = s.connect_ex((host,port))
if result == 0:
print(" [*] Port " + str(port) + " open! " + host)
req = requests.get(result)
if req.status_code == 200 :
soup = BeautifulSoup(req.text)
tag = soup.find(text="particular keyword")
print(" Keyword Found is " + str(tag))
else: print(" [*] Port " + str(port) + " close! " + host)
except:
pass