我正在尝试以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个结果
提前谢谢!
答案 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