Вопрос или проблема
Я хотел бы получить “пульсы” за последние 24 часа из Alienvault OTX API как бесплатный пользователь.
Я пробовал использовать /api/v1/pulses/subscribed
с параметром modified_since:
. Как и предполагает название, это не возвращает новые пульсы, только измененные пульсы.
Кто-нибудь пробовал сделать что-то подобное? Или использовал другое решение?
Параметр modified_since
принимает значение даты и времени в формате yyyy-mm-ddThh:mm:dd+TZ
. Если вы получаете данные с помощью скрипта, заставьте его проверить текущее время, уменьшить его на 24 часа и использовать эту метку времени для получения данных из Alienvault.
Я смог запросить этот конечный пункт,/api/v1/pulses/subscribed?modified_since=2023-05-15T00:00:00+00:00"
, который предоставил мне 15 результатов.
В качестве альтернативы вы можете использовать Python SDK, который может быть более удобным для автоматизации. Надеюсь, это поможет!
Ответ или решение
Для получения "пульсов" за последние 24 часа из API Alienvault OTX вам потребуется использовать правильный метод и параметры для запроса данных. К сожалению, как вы заметили, метод /api/v1/pulses/subscribed
с параметром modified_since
возвращает только измененные пульсы, а не новые.
Вот шаги, которые вы можете предпринять для получения новых пульсов за последние 24 часа:
-
Используйте
created_since
: В отличие отmodified_since
, параметрcreated_since
, если он доступен в API, может вернуть пульсы, созданные за указанный период. Проверьте документацию API на наличие этого параметра. Например, вы могли бы сделать запрос:GET /api/v1/pulses/all?created_since=2023-05-15T00:00:00+00:00
Убедитесь, что вы корректно указываете временную метку в формате
yyyy-mm-ddThh:mm:ss+TZ
, как вы упомянули. -
Получение текущего времени: Для автоматизации процесса в вашем скрипте вы можете получить текущее время и уменьшить его на 24 часа. Например, на Python это может выглядеть следующим образом:
from datetime import datetime, timedelta import requests # Получаем текущее время UTC now = datetime.utcnow() # Вычисляем время 24 часа назад since_time = now - timedelta(days=1) # Форматируем время в нужный формат since_time_str = since_time.strftime('%Y-%m-%dT%H:%M:%S+00:00') # Выполнение запроса к API url = f"https://otx.alienvault.com/api/v1/pulses/all?created_since={since_time_str}" response = requests.get(url) pulses = response.json() # Обрабатываем полученные данные print(pulses)
-
Использование Python SDK: Если API предоставляет Python SDK, это может быть более простым и эффективным способом работы с данными. SDK, как правило, обрабатывает детали аутентификации и форматирования запросов. Ознакомьтесь с документацией SDK для получения информации о том, как использовать его для получения новых пульсов.
-
Мониторинг изменений: Если у вас есть потребность в регулярном мониторинге новых пульсов, вы можете автоматизировать выполнение вышеуказанного скрипта, например, с помощью cron-работ на сервере или планировщика задач в Windows.
Таким образом, если параметр created_since
доступен в API, вы сможете легко получить новые пульсы за последние 24 часа. Если нет, возможно, придется использовать другие доступные способы, как автоматизированный запрос на основе времени изменения.