我正在使用Flask服务器为后端创建一个应用程序。我想让应用程序使用NMAP来显示可用端口,但出现错误。
我尝试重新启动计算机(Mac OS)。我还通过终端中的Python解释器测试了Python-NMAP命令,并且不会返回错误。但是从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"}
。
如何避免此错误?