Kurlyk
Loading...
Searching...
No Matches
user_agent_utils.hpp
Go to the documentation of this file.
1#pragma once
2#ifndef _KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
3#define _KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
4
7
8namespace kurlyk::utils {
9
13 std::string convert_user_agent_to_sec_ch_ua(const std::string& user_agent) {
14 // Regular expression to extract the browser name and version from User-Agent
15 static const std::regex browser_regex(R"(Chrome/(\d+)\.\d+\.\d+\.\d+)");
16 std::string version = "0";
17
18 // Match the User-Agent string to extract the Chrome version
19 std::smatch match;
20 if (std::regex_search(user_agent, match, browser_regex) && match.size() > 1) {
21 version = match[1].str(); // Extract version number
22 }
23
24 // Generate sec-ch-ua header
25 std::string sec_ch_ua = "\"Not;A Brand\";v=\"99\", \"Google Chrome\";v=\"" + version + "\", \"Chromium\";v=\"" + version + "\"";
26 return sec_ch_ua;
27 }
28
29} // namespace kurlyk::utils
30
31#endif // _KURLYK_UTILS_USER_AGENT_UTILS_HPP_INCLUDED
std::string convert_user_agent_to_sec_ch_ua(const std::string &user_agent)
Converts a User-Agent string to a sec-ch-ua header value.