Поиск Shodan.py не печатает полный набор результатов при печати списка совпадений - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь распечатать полный список результатов для конкретного выполняемого запроса в формате IP: PORT.Однако он печатает только частичную сумму.

results['total'] печатает 1799 (что также является суммой результатов, когда поиск выполняется на веб-сайте Shodan), однако при печати фактических совпадений он печатает только 99 результатов.,

Это, вероятно, что-то элементарное, например, не отображать все страницы результатов.У меня есть образовательный счет Шодана.

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 голосов
/ 01 января 2019

Согласно документам, это работает так, как задумано:

Пошагово просматривая код, мы сначала вызываем метод Shodan.search () для объекта api, который возвращает словарь информации о результатах.Затем мы печатаем, сколько всего результатов было найдено, и, наконец, перебираем найденные совпадения и печатаем их IP и баннер. Каждая страница результатов поиска содержит до 100 результатов.

Документация находится в этом PDF-файле: https://media.readthedocs.org/pdf/shodan/latest/shodan.pdf

0 голосов
/ 01 января 2019

Shodan возвращает только первую страницу, которая содержит 100 результатов , любые последующие запросы для страниц за пределами будут стоить 1 запрос кредита .

Чтобы получить больше страниц:

api.search('SearchQuery', page=2) и т. Д. *

...