我收到有关程序插件的错误,基本上我要做的工作是从Cowrie Honeypot的json文件中提取摘要,并打印所有国家/地区,例如其中写入了多少个国家/地区使用geoip和geolite2之类的插件生成json文件。
这里是程序和我得到的错误,我想问题是关于程序从文件源的路径。任何帮助将不胜感激
我得到的错误:
我的代码:
import glob
import json
import gmplot
from collections import defaultdict
from pprint import pprint
from geoip import geolite2
ips = []
for fn in glob.glob("C:/Users/Bennet/Desktop/Random/forin/cowrie/log/cowrie.json.*"):
with open(fn, "rt") as f:
for line in f:
data = json.loads(line)
if data['eventid'] == "cowrie.session.connect":
ips.append(data['src_ip'])
lats = []
longs = []
for ip in ips:
data = geolite2.lookup(ip)
if data is None:
continue
lats.append(data.location[0])
longs.append(data.location[1])
gmap = gmplot.GoogleMapPlotter(0,0, 2)
gmap.heatmap(lats, longs)
gmap.draw("mymap.html")
pprint(countries)
不幸的是,我不知道geolite2-module,但是如果我理解正确的错误消息,则错误是传递geolite2.lookup()
一个字符串(ip
),但是它需要一个类似字节的对象。
您是否已经在第19行尝试过geolite2.lookup(bytes(ip))
?