Я создаю приложение с сервером Flask для бэкэнда. Я хочу, чтобы приложение использовало NMAP для отображения доступных портов, но я получаю ошибки.
Я попытался перезагрузить компьютер (Mac OS). Я также протестировал команду Python-NMAP через интерпретатор Python в терминале, и это не возвращает ошибку. Но выполнение команды из Flask делает.
import json
import nmap
from flask import Flask, render_template
from flask_cors import CORS
app = Flask(__name__, static_folder="../public/dist", template_folder="../public")
CORS(app)
def find_open_ports(host):
"""Uses Nmap to find the open ports on a given host"""
nm = nmap.PortScanner()
open_port_data = nm.scan(host, "0-500")
return open_port_data["nmap"]
@app.route("/hosts/<host>", methods=["GET"])
def ports(host):
open_ports = find_open_ports(host)
return json.dumps(open_ports)
Я ожидаю, что при запуске сервера при нажатии на URL localhost:5000/hosts/127.0.0.1
будет отображаться JSON, который включает в себя:
'scaninfo': {'tcp': {'method': 'connect', 'services': '1-500'}}
но вместо этого оно имеет:
"scaninfo": {"error": ["Strange read error from 176.32.103.205 (49 - 'Can't assign requested address')\n"], "tcp": {"method": "connect", "services": "0-500"}
.
Как мне избежать этой ошибки?