Поделиться через


parse_user_agent()

Область применения: ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Интерпретирует строку агента пользователя, которая определяет браузер пользователя и предоставляет определенные системные сведения серверам, на которых размещаются веб-сайты, которые посещают пользователи. Результат возвращается как dynamic.

Синтаксис

parse_user_agent(user-agent-string, look-for)

Дополнительные сведения о соглашениях синтаксиса.

Параметры

Имя (название) Type Обязательно Описание
строка user-agent-string string ✔️ Строка агента пользователя для синтаксического анализа.
поиск строка или динамическая ✔️ Значение для поиска в строке user-agent-string. Возможные варианты: browser, os или device. Если требуется только один целевой объект синтаксического анализа, его можно передать string . Если требуются два или три целевых объекта, их можно передать в виде массива dynamic .

Возвраты

Объект типа dynamic , содержащий сведения о запрошенных целевых объектах синтаксического анализа.

Браузер: family, MajorVersion, MinorVersion, Patch

Операционная система: family, MajorVersion, MinorVersion, Patch, PatchMinor

Устройство: семейство, бренд, модель

Предупреждение

Реализация функции основана на регулярных проверках входной строки на огромное количество предопределенных шаблонов. Поэтому ожидаемое время и потребление ЦП высоко. Если функция используется в запросе, убедитесь, что она выполняется в распределенном режиме на нескольких компьютерах. Если часто используются запросы с этой функцией, может потребоваться предварительно создать результаты с помощью политики обновления, но необходимо учитывать, что использование этой функции внутри политики обновления увеличит задержку приема.

Примеры

Поиск параметра в виде строки

print useragent = "Mozilla/5.0 (Windows; U; en-US) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"
| extend x = parse_user_agent(useragent, "browser") 

Ожидаемый результат — это динамический объект:

{
  "Browser": {
    "Family": "AdobeAIR",
    "MajorVersion": "2",
    "MinorVersion": "5",
    "Patch": "1"
  }
}

Поиск параметров в виде динамического массива

print useragent = "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN81-3/10.0.032 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/4"
| extend x = parse_user_agent(useragent, dynamic(["browser","os","device"])) 

Ожидаемый результат — это динамический объект:

{
  "Browser": {
    "Family": "Nokia OSS Browser",
    "MajorVersion": "3",
    "MinorVersion": "1",
    "Patch": ""
  },
  "OperatingSystem": {
    "Family": "Symbian OS",
    "MajorVersion": "9",
    "MinorVersion": "2",
    "Patch": "",
    "PatchMinor": ""
  },
  "Device": {
    "Family": "Nokia N81",
    "Brand": "Nokia",
    "Model": "N81-3"
  }
}