ошибка импорта данных сканирования nmap в базу данных sqlite с использованием python - PullRequest
0 голосов
/ 02 мая 2019

Я написал этот фрагмент кода, пытаясь импортировать мои данные nmap csv в базу данных sqlite, но у меня возникают ошибки при попытке запустить его из терминала.

Traceback (most recent call last):
  File "fourth.py", line 16, in <module>
    to_db = [(i['host'],i['hostname'],i['hostname_type '],i['protocol'],i['port'],i['name'],i['state'],i['product'],i['extrainfo'],i['reason'],i['version'],i['conf'],i['cpe'])for i in dr]
  File "fourth.py", line 16, in <listcomp>
    to_db = [(i['host'],i['hostname'],i['hostname_type '],i['protocol'],i['port'],i['name'],i['state'],i['product'],i['extrainfo'],i['reason'],i['version'],i['conf'],i['cpe'])for i in dr]
KeyError: 'host'

мой CSV

host;hostname;hostname_type;protocol;port;name;state;product;extrainfo;reason;version;conf;cpe

8.8.8.8;google-public-dns-a.google.com;PTR;tcp;22;ssh;filtered;;;no-response;;3;

мой код

#!/usr/bin/#!/usr/bin/env python3

import sqlite3
import csv

conn = sqlite3.connect('nmapscan.db')

cur = conn.cursor()

conn.executescript("DROP TABLE IF EXISTS scanned; CREATE TABLE scanned (host,hostname,hostname_type,protocol,port,name,state,product,extrainfo,reason,version,conf,cpe);" )



with open ('nmapscan.csv', 'r') as fin:
    dr = csv.DictReader(fin)
    to_db = [(i['host'],i['hostname'],i['hostname_type '],i['protocol'],i['port'],i['name'],i['state'],i['product'],i['extrainfo'],i['reason'],i['version'],i['conf'],i['cpe'])for i in dr]

cur.executemany("INSERT INTO scanned (host,hostname,hostname_type,protocol,port,name,state,product,extrainfo,reason,version,conf,cpe) values (?,?,?,?,?,?,?,?,?,?,?,?,?));", to_db)
conn.commit()
conn.close()

код сканирования nmap

csvFilePath = "nmapscan.csv"
ipAddress = first.ipAddress
port = first.port

nm = nmap.PortScanner()

nm.scan(ipAddress,port)

csv = nm.csv()
print(csv)

#writing to csv file
with open(csvFilePath, "w") as csvFile:
    csvFile.write(csv)

Я хочу добавить данные csv в таблицу базы данных, в которой все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...