在打印匹配列表时,Shodan.py搜索不会打印完整的结果集

时间:2019-01-01 02:20:42

标签: python python-3.x shodan

我正在尝试以IP:PORT格式打印出我正在执行的特定查询的完整结果列表。但是,它只打印部分金额。

results['total']打印1799(这也是Shodan网站上执行搜索时的结果量),但是当打印实际匹配项时,它仅打印99个结果。

这可能是基本内容,例如不显示所有结果页面。我有Shodan教育帐户。

from shodan import Shodan

api = Shodan('APIKEY')

# Search Shodan
results = api.search('SearchQuery')

# Results found: 1799 
print('Results found: {}'.format(results['total']))

# Prints 99 results. 
for result in results['matches']:
    print(str(result['ip_str']) + ":" + str(result['port']))

预期:1799个结果 实际:100个结果

提前谢谢!

2 个答案:

答案 0 :(得分:1)

Shodan仅返回contains 100 results的第一页,超出该页的任何其他查询将花费1 query credit

要获取更多页面:

api.search('SearchQuery', page=2)等...

答案 1 :(得分:1)

根据文档,此功能可以按预期运行:

  

逐步执行代码,我们首先调用Shodan.search()方法   返回结果信息字典的api对象。我们   然后打印总共找到多少个结果,最后循环   通过返回的匹配项并打印其IP和横幅。 每个页面   搜索结果中最多包含100个结果。

该文档位于此pdf文件中:https://media.readthedocs.org/pdf/shodan/latest/shodan.pdf