0

私は 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
4

0 に答える 0