При использовании Python с Flask, получите 49 - «Не удается назначить запрошенный адрес при поиске открытых портов - PullRequest
0 голосов
/ 08 апреля 2019

Я создаю приложение с сервером 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"}.

Как мне избежать этой ошибки?

...