Shodan的利用

Shodan 注册后在用户中心会有一个API Key,利用这个 Key 可以使用 shodan 的命令行版本,首先下载这个项目
git clone https://github.com/achillean/shodan-python.git
然后安装

python setup.py build
python setup.py install

安装完成后要使用API Key 对 Shodan 进行初始化
shodan init API-Key
接下来就可以进行查询了,shodan count xxx
将信息下载需要使用shodan downloda yyy xxx搜索的关键字是xxx,下载可以得到yyy.json.gz的文件,解压可以得到yyy.json的文件

import json
with open('H3C.json', 'r') as f:
    data = json.load(f)

但是这样会遇到ValueError: Extra data问题,StackOverflow 解释为多个对象,这不是肯定吗,就一个对象我还操作个什么劲

f = codecs.open('H3C.json', encoding="utf-8")
for line in f:
        line_dict = json.loads(line)

把 json 文件中特定字段提取出来,存入文件中

# encoding: utf-8

import json
import codecs

listed = []
ip_list = []

f = codecs.open('H3C.json', encoding="utf-8")
filepath = 'C:\\ip_data.txt'

for line in f:
    line_dict = json.loads(line)
    listed.append(line_dict)

for thing in listed:
    ip_list.append(thing.get('ip_str'))

with open(filepath, "a") as f:
    for ip_address in ip_list:
        f.write("\n".join(str(ip_address).split('-')) + "\n")

你可能感兴趣的:(python,api,git,shodan)