{"id":2518,"date":"2026-07-19T17:52:54","date_gmt":"2026-07-19T17:52:54","guid":{"rendered":"https:\/\/balr-bet.com\/?page_id=2518"},"modified":"2026-07-19T17:58:33","modified_gmt":"2026-07-19T17:58:33","slug":"live-visitors572892091715701570","status":"publish","type":"page","link":"https:\/\/balr-bet.com\/?page_id=2518","title":{"rendered":"live-visitors"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2518\" class=\"elementor elementor-2518\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-21137f0 e-flex e-con-boxed e-con e-parent\" data-id=\"21137f0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-95c3488 elementor-widget elementor-widget-shortcode\" data-id=\"95c3488\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n<div style=\"padding: 6px 8px !important;\">\n\n    <!-- IP Address (filled live via REST fetch \u2014 never baked into cached HTML) -->\n    <div style=\"margin: 0px 0px 6px !important;\">\n        <div style=\"font-weight: bold !important; margin: 0px 0px 3px !important;\">Your IP Address:<\/div>\n        <div style=\"white-space: nowrap !important;\">\n            <span id=\"balr-ip\">-<\/span>\n        <\/div>\n    <\/div>\n\n    <!-- OS (detected via JS) -->\n    <div style=\"margin: 0px 0px 6px !important;\">\n        <div style=\"font-weight: bold !important; margin: 0px 0px 3px !important;\">Your OS:<\/div>\n        <div style=\"white-space: nowrap !important;\">\n            <img decoding=\"async\" id=\"balr-os-icon\" src=\"\" width=\"10\" height=\"10\" alt=\"\" style=\"vertical-align: middle !important; margin-right: 4px !important; display: none !important;\">\n            <span id=\"balr-os\">-<\/span>\n        <\/div>\n    <\/div>\n\n    <!-- Country (filled live via REST fetch, hidden until we have a value) -->\n    <div id=\"balr-country-row\" style=\"margin: 0px 0px 6px !important; display: none !important;\">\n        <div style=\"font-weight: bold !important; margin: 0px 0px 3px !important;\">Your Country:<\/div>\n        <div style=\"white-space: normal !important; word-break: break-word !important;\">\n            <img decoding=\"async\" id=\"balr-country-flag\" src=\"\" width=\"16\" height=\"11\" alt=\"\" style=\"vertical-align: middle !important; margin-right: 4px !important; display: none !important;\">\n            <span id=\"balr-country\">-<\/span>\n        <\/div>\n    <\/div>\n\n    <!-- Browser (detected via JS) -->\n    <div style=\"margin: 0px 0px 6px !important;\">\n        <div style=\"font-weight: bold !important; margin: 0px 0px 3px !important;\">Your Browser:<\/div>\n        <div style=\"white-space: nowrap !important;\">\n            <img decoding=\"async\" id=\"balr-browser-icon\" src=\"\" width=\"10\" height=\"10\" alt=\"\" style=\"vertical-align: middle !important; margin-right: 4px !important; display: none !important;\">\n            <span id=\"balr-browser\">-<\/span>\n        <\/div>\n    <\/div>\n\n<\/div>\n\n<script>\n(function(){\n    var ua = navigator.userAgent;\n    var osName = '';\n    var osIcon = '';\n\n    \/\/ ============ OS DETECTION ============\n    if (\/Android\/.test(ua)) {\n        osName = 'Android';\n        osIcon = 'android';\n    } else if (\/iPhone|iPad|iPod\/.test(ua)) {\n        osName = 'iOS';\n        osIcon = 'apple';\n    } else if (\/Mac OS X\/.test(ua) || \/Macintosh\/.test(ua)) {\n        osName = 'macOS';\n        osIcon = 'apple';\n    } else if (\/Windows NT 10\/.test(ua)) {\n        osName = 'Windows 10\/11';\n        osIcon = 'windows';\n    } else if (\/Windows NT 6.3\/.test(ua)) {\n        osName = 'Windows 8.1';\n        osIcon = 'windows';\n    } else if (\/Windows\/.test(ua)) {\n        osName = 'Windows';\n        osIcon = 'windows';\n    } else if (\/Linux\/.test(ua) && !\/Android\/.test(ua)) {\n        osName = 'Linux';\n        osIcon = 'linux';\n    } else if (\/CrOS\/.test(ua)) {\n        osName = 'Chrome OS';\n        osIcon = 'chrome-os';\n    }\n\n    \/\/ ============ UPDATE DOM (OS) ============\n    if (osName) {\n        document.getElementById('balr-os').textContent = osName;\n        if (osIcon) {\n            var osImg = document.getElementById('balr-os-icon');\n            osImg.src = 'https:\/\/cdn.livetrafficfeed.com\/images\/os\/11\/' + osIcon + '.png';\n            osImg.style.display = 'inline-block';\n        }\n    }\n\n    \/\/ ============ BROWSER DETECTION ============\n    function applyBrowser(name, icon, version) {\n        if (!name) return;\n        document.getElementById('balr-browser').textContent = name + (version ? ' ' + version : '');\n        if (icon) {\n            var brImg = document.getElementById('balr-browser-icon');\n            brImg.src = 'https:\/\/cdn.livetrafficfeed.com\/images\/browser\/11\/' + icon + '.png';\n            brImg.style.display = 'inline-block';\n        }\n    }\n\n    \/\/ UA-regex fallback, used only for browsers that don't support Client Hints\n    \/\/ at all (Firefox, Safari, older browsers).\n    function detectViaUA() {\n        var name = '', icon = '', version = '';\n        if (\/Edg\/.test(ua)) { name = 'Edge'; icon = 'edge'; }\n        else if (\/OPR|Opera\/.test(ua)) { name = 'Opera'; icon = 'opera'; }\n        else if (\/Chrome\/.test(ua) && !\/Edg|OPR|Opera\/.test(ua)) { name = 'Chrome'; icon = (\/Mobile\/.test(ua) ? 'chrome-mobile' : 'chrome'); }\n        else if (\/Safari\/.test(ua) && !\/Chrome|CriOS|FxiOS\/.test(ua)) { name = 'Safari'; icon = (\/Mobile\/.test(ua) ? 'safari-mobile' : 'safari'); }\n        else if (\/Firefox\/.test(ua)) { name = 'Firefox'; icon = 'firefox'; }\n        else if (\/SamsungBrowser\/.test(ua)) { name = 'Samsung Browser'; icon = 'samsung'; }\n\n        if (name === 'Safari') {\n            var v = ua.match(\/Version\\\/([\\d.]+)\/);\n            if (v) version = v[1];\n        } else if (name === 'Chrome' || name === 'Edge' || name === 'Opera') {\n            var v = ua.match(\/Chrome\\\/([\\d.]+)\/);\n            if (v) version = v[1];\n        } else if (name) {\n            var v = ua.match(new RegExp(name + '\\\\\/([\\\\d.]+)', 'i'));\n            if (v) version = v[1];\n        }\n        return { name: name, icon: icon, version: version };\n    }\n\n    \/\/ Note: Vivaldi (default settings) deliberately identifies as plain Chrome\n    \/\/ in both the UA string and Client Hints \u2014 it will show as \"Chrome\" here,\n    \/\/ and no client-side script can see through that by design.\n    if (navigator.brave) {\n        var v = ua.match(\/Chrome\\\/([\\d.]+)\/);\n        applyBrowser('Brave', 'brave', v ? v[1] : '');\n    } else if (navigator.userAgentData && navigator.userAgentData.getHighEntropyValues) {\n        navigator.userAgentData.getHighEntropyValues(['fullVersionList'])\n            .then(function(data){\n                var list = (data.fullVersionList || []).filter(function(b){ return !\/Not.*Brand\/i.test(b.brand); });\n                var found = null;\n                list.forEach(function(b){\n                    if (!found && b.brand === 'Microsoft Edge') found = { name: 'Edge', icon: 'edge', version: b.version };\n                    else if (!found && b.brand === 'Opera') found = { name: 'Opera', icon: 'opera', version: b.version }; \/\/ Opera GX also reports as \"Opera\"\n                    else if (!found && b.brand === 'Google Chrome') found = { name: 'Chrome', icon: (\/Mobile\/.test(ua) ? 'chrome-mobile' : 'chrome'), version: b.version };\n                });\n                if (!found) found = detectViaUA(); \/\/ no known brand matched \u2014 fall back to UA parsing\n                applyBrowser(found.name, found.icon, found.version);\n            })\n            .catch(function(){\n                var f = detectViaUA();\n                applyBrowser(f.name, f.icon, f.version);\n            });\n    } else {\n        \/\/ Firefox, Safari, and other browsers with no Client Hints support at all\n        var f = detectViaUA();\n        applyBrowser(f.name, f.icon, f.version);\n    }\n\n    \/\/ ============ IP + COUNTRY (fetched live \u2014 never part of cached page HTML) ============\n    \/\/ The cache-busting query param below is essential: without it, the URL is\n    \/\/ identical for every visitor, and any upstream cache (CDN, host-level cache)\n    \/\/ that caches by URL alone would freeze one response and serve it to everyone.\n    var restUrl = 'https:\/\/balr-bet.com\/index.php?rest_route=\/balr\/v1\/whoami';\n    var cacheBuster = Date.now() + '-' + Math.random().toString(36).slice(2);\n    \/\/ rest_url() already contains a \"?\" on sites without pretty permalinks\n    \/\/ (e.g. ?rest_route=\/balr\/v1\/whoami) \u2014 must use \"&\" in that case, or the\n    \/\/ request becomes malformed and silently 404s.\n    var sep = restUrl.indexOf('?') !== -1 ? '&' : '?';\n    fetch(restUrl + sep + '_=' + cacheBuster, {\n        cache: 'no-store',\n        headers: { 'Cache-Control': 'no-cache' }\n    })\n        .then(function(res){ return res.json(); })\n        .then(function(data){\n            if (data.ip) {\n                document.getElementById('balr-ip').textContent = data.ip;\n            }\n            if (data.country) {\n                document.getElementById('balr-country').textContent = data.country;\n                document.getElementById('balr-country-row').style.display = 'block';\n                if (data.flag) {\n                    var flagImg = document.getElementById('balr-country-flag');\n                    flagImg.src = data.flag;\n                    flagImg.style.display = 'inline-block';\n                }\n            }\n        })\n        .catch(function(){\n            document.getElementById('balr-ip').textContent = 'Unavailable';\n        });\n})();\n<\/script>\n\n<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-2518","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/pages\/2518","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/balr-bet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2518"}],"version-history":[{"count":5,"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/pages\/2518\/revisions"}],"predecessor-version":[{"id":2526,"href":"https:\/\/balr-bet.com\/index.php?rest_route=\/wp\/v2\/pages\/2518\/revisions\/2526"}],"wp:attachment":[{"href":"https:\/\/balr-bet.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}