0 Вопрос: ошибка импорта данных сканирования nmap в базу данных sqlite с использованием python

вопрос создан в Thu, May 2, 2019 12:00 AM

Я написал этот фрагмент кода, пытаясь импортировать мои данные CSV nmap в базу данных 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 в таблицу базы данных, которая является всем.

    
0
  1. В вашем CSV явно отсутствует запятая ...
    2019-05-02 15: 36: 01Z
  2. Как изменить сканирование nmap, чтобы сохранить csv с запятыми, я изменил его вручную, и это сработало!
    2019-05-02 16: 30: 00Z
  3. csvFilePath = "nmapscan.csv" ipAddress = first.ipAddress port = first.port nm = nmap.PortScanner () nm.scan (ipAddress, port) csv = nm .csv () print (csv) # запись в csv-файл с открытым (csvFilePath, "w") в виде csvFile: csvFile.write (csv)
    2019-05-02 16: 30: 27Z
0 ответов                              0                         
источник размещен Вот