Я писал сценарий python, используя ссылки из Google, и моя задача - передать список 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