{"id":12855,"date":"2022-01-20T14:06:14","date_gmt":"2022-01-20T13:06:14","guid":{"rendered":"http:\/\/hurt-orange.local\/tpix-pl\/"},"modified":"2026-02-19T13:35:07","modified_gmt":"2026-02-19T12:35:07","slug":"tpix-platforma-wymiany-ruchu-ip","status":"publish","type":"page","link":"https:\/\/hurt-orange.pl\/tpix\/","title":{"rendered":"TPIX | open peering"},"content":{"rendered":"\n\n            \n            <div\n                                class=\"slider-type-2 position-relative invisible\"\n                data-slick_dots=\"\"\n                data-slick_arrows=\"\"\n                data-slick_infinite=\"\"\n                data-slick_speed=\"500\"\n                data-slick_autoplay=\"\"\n                data-slick_autoplay_speed=\"2500\"\n                data-slick_cssease=\"ease\"\n                data-slick_animation=\"slide\"\n                data-slick_pauseonhover=\"\"\n            >\n                <div class=\"slider-type-2__slides\">\n                                                                    <div>\n                                                            <div class=\"slide-6a2f9e2a5feef slider-type-2__slide position-relative overflow-hidden\">\n        <div class=\"slider-type-2__slide__image position-md-relative position-sm-absolute\">\n            <img\n                    class=\"d-none d-lg-block desktop\"\n                    data-lazy=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2024\/04\/TPIX_slider_desktop_new.webp\"\n                    alt=\"Stabilna i bezpieczna wymiana ruchu IP\"\n                    height=\"100%\"\n            >\n            <img class=\"d-block d-lg-none mobile\" data-lazy=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/TPIX_slider_mobile.png\"\n                 alt=\"Stabilna i bezpieczna wymiana ruchu IP\"\n                 height=\"100%\">\n        <\/div>\n        <div class=\"slider-type-2__slide__feed container position-relative\">\n            <div\n                    class=\"slider-type-2__slide__feed-box position-relative d-flex flex-column\n                        justify-content-start py-4 col pl-lg-0\"\n            >\n                                    <h2 class=\"slider-type-2__slide__title m-lg-0 pr-lg-4\">Stabilna i bezpieczna wymiana ruchu IP<\/h2>\n                                                    <div class=\"slider-type-2__slide__description-container pr-lg-4\">\n                                                    <p class=\"slider-type-2__slide__description m-lg-0\">\n                                tre\u015bci I telewizja I multimedia I internet I \u015bwiat                            <\/p>\n                                                                    <\/div>\n                                                    <div class=\"d-flex pt-3\">\n                                                <a                                href=\"\/tpix\/oferta\"                                                                class=\"button button-large button-transparent btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none mt-3 mt-lg-0 button-orange\"\n                            >\n                Sprawd\u017a            <\/a>\n                            <\/div>\n                            <\/div>\n        <\/div>\n    <\/div>\n                            <\/div>\n                                    <\/div>\n                <div class=\"slider-type-2__nav position-absolute justify-content-center mb-4\">\n\n                <\/div>\n            <\/div>\n        \n\n                \n        <div\n                            class=\"banner-type-9 py-2 position-relative banner-type-96a2f9e2a601c3\"\n        >\n            <div class=\"banner-type-9__bg position-absolute\" style=\"background-color: \"><\/div>\n\n            <div class=\"my-3 my-lg-5 position-relative row banner-type-9__row\">\n                <div class=\"col-12 col-lg-6 pl-lg-0 mb-3 mb-lg-0 px-0 pl-lg-3 pr-lg-2\">\n                    <div class=\"banner-type-9__box-bg p-3 p-lg-0  banner-type-9__col-left\"\n                         style=\"background-color: #fff;\">\n                                                    <h3 class=\"banner-type-9__title mt-2 mb-2 mb-lg-4\">Statystyki ruchu w TPIX<\/h3>\n                                                                            <p class=\"banner-type-9__left-text\">\n                                Sprawd\u017a aktualny ruch na platformie TPIX w uj\u0119ciu dziennym, miesi\u0119cznym oraz rocznym.                                                                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/statystyki-ruchu\/\" title=\"Zobacz szczeg\u00f3\u0142y\" class=\"stats-link\">Zobacz szczeg\u00f3\u0142y<\/a>\n                                                            <\/p>\n                                                <div class=\"banner-type-9__chart chart mt-3\">\n                                    <div class=\"row chart-content position-relative chart-content--compact\">\n                        <div class=\"col-12\">\n                <div class=\"chart__canvas-wrapper mt-3\">\n                    <div class=\"chart__loading\" id=\"chart-day-loading\">Pobieranie danych z TPIX&#8230;<\/div>\n                    <div class=\"chart__error\" id=\"chart-day-error\"><\/div>\n                    <canvas id=\"chart-day\"><\/canvas>\n                <\/div>\n                <div class=\"chart__stats\" id=\"stats-day\"><\/div>\n            <\/div>\n                    <\/div>\n                <script src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/themes\/orange-hurt\/components\/chart\/vendor\/chart.umd.min.js\"><\/script>\n        <script src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/themes\/orange-hurt\/components\/chart\/vendor\/chartjs-adapter-date-fns.bundle.min.js\"><\/script>\n        <script>\n        (function () {\n            if (window.__tpixChartInit) return;\n            window.__tpixChartInit = true;\n\n            var ORANGE = '#ff7900';\n            var ORANGE_FILL = 'rgba(255, 121, 0, 0.85)';\n\n            var XML_URL = \"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/themes\\\/orange-hurt\\\/components\\\/chart\\\/proxy.php\";\n\n            function show(id, display) {\n                var el = document.getElementById(id);\n                if (el) el.style.display = display;\n            }\n\n            async function fetchXML() {\n                var bust = '?_=' + Date.now();\n                var response;\n                try {\n                    response = await fetch(XML_URL + bust, { cache: 'no-store' });\n                    if (!response.ok) throw new Error('proxy failed');\n                } catch (e) {\n                    response = await fetch('https:\/\/lg.tpix.pl\/graphs\/total.xml' + bust, { cache: 'no-store' });\n                }\n                var text = await response.text();\n                var doc = new DOMParser().parseFromString(text, 'application\/xml');\n                if (doc.querySelector('parsererror')) {\n                    throw new Error('Invalid XML response');\n                }\n                return doc;\n            }\n\n            function parseRRA(xml, rraIndex) {\n                var rras = xml.querySelectorAll('rra');\n                var rra = rras[rraIndex];\n                if (!rra) return [];\n\n                var dbEl = rra.querySelector('database');\n                if (!dbEl) return [];\n                var dbHTML = dbEl.innerHTML;\n                var commentRegex = \/<!--\\s*(\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2})\\s+\\w+\\s*\\\/\\s*(\\d+)\\s*-->\\s*<row><v>([\\d.eE+\\-NaN]+)<\\\/v><v>([\\d.eE+\\-NaN]+)<\\\/v><\\\/row>\/g;\n\n                var data = [];\n                var match;\n                while ((match = commentRegex.exec(dbHTML)) !== null) {\n                    var timestamp = parseInt(match[2]) * 1000;\n                    var input = parseFloat(match[3]);\n                    var output = parseFloat(match[4]);\n                    if (!isNaN(input) && !isNaN(output)) {\n                        data.push({ timestamp: timestamp, input: input, output: output });\n                    }\n                }\n                return data;\n            }\n\n            \/\/ Remove sudden dips caused by missing\/incomplete readings.\n            function smoothDips(data, thresholdRatio) {\n                if (thresholdRatio === undefined) thresholdRatio = 0.8;\n                if (data.length < 5) return data;\n                var smoothed = data.map(function (d) { return Object.assign({}, d); });\n                for (var i = 1; i < smoothed.length - 1; i++) {\n                    var prev = smoothed[i - 1];\n                    var curr = smoothed[i];\n                    var next = data[i + 1];\n                    ['input', 'output'].forEach(function (field) {\n                        var neighborAvg = (prev[field] + next[field]) \/ 2;\n                        if (neighborAvg > 0 && curr[field] < neighborAvg * thresholdRatio) {\n                            smoothed[i][field] = neighborAvg;\n                        }\n                    });\n                }\n                return smoothed;\n            }\n\n            function formatTbps(val) {\n                return (val \/ 1e12).toFixed(2) + ' Tbps';\n            }\n\n            function calcStats(data, field) {\n                var values = data.map(function (d) { return d[field]; }).filter(function (v) { return v > 0; });\n                if (values.length === 0) return { max: 0, avg: 0, last: 0 };\n                var max = Math.max.apply(null, values);\n                var avg = values.reduce(function (a, b) { return a + b; }, 0) \/ values.length;\n                var last = values[values.length - 1];\n                return { max: max, avg: avg, last: last };\n            }\n\n            function fmtDateTime(ts, withTime) {\n                var d = new Date(ts);\n                var pad = function (n) { return n < 10 ? '0' + n : '' + n; };\n                var datePart = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '.' + d.getFullYear();\n                if (!withTime) return datePart;\n                return datePart + ', ' + pad(d.getHours()) + ':' + pad(d.getMinutes());\n            }\n\n            function renderKPI(chartId, data, withTime) {\n                if (!data || !data.length) return;\n                var peak = 0;\n                var peakTs = data[0].timestamp;\n                for (var i = 0; i < data.length; i++) {\n                    var v = Math.max(data[i].input, data[i].output);\n                    if (v > peak) {\n                        peak = v;\n                        peakTs = data[i].timestamp;\n                    }\n                }\n                var peakEl = document.getElementById(chartId + '-peak');\n                var periodEl = document.getElementById(chartId + '-period');\n                if (peakEl) peakEl.textContent = (peak \/ 1e12).toFixed(2) + ' Tbps';\n                if (periodEl) periodEl.textContent = 'z dnia ' + fmtDateTime(peakTs, withTime);\n            }\n\n            function renderStats(elId, stats) {\n                var el = document.getElementById(elId);\n                if (!el) return;\n                el.innerHTML =\n                    '<span>\u25a0 Traffic<\/span> ' +\n                    '<span>Max: ' + formatTbps(stats.max) + '<\/span> ' +\n                    '<span>Avg: ' + formatTbps(stats.avg) + '<\/span> ' +\n                    '<span>Last: ' + formatTbps(stats.last) + '<\/span>';\n            }\n\n            function createAreaChart(canvasId, data, smooth) {\n                var canvas = document.getElementById(canvasId);\n                if (!canvas) return;\n                var ctx = canvas.getContext('2d');\n                var labels = data.map(function (d) { return new Date(d.timestamp); });\n\n                var datasets = [{\n                    label: 'Traffic',\n                    data: data.map(function (d) { return Math.max(d.input, d.output) \/ 1e12; }),\n                    borderColor: ORANGE,\n                    backgroundColor: ORANGE_FILL,\n                    fill: true,\n                    borderWidth: 0.5,\n                    pointRadius: 0,\n                    tension: smooth ? 0.35 : 0.1,\n                }];\n\n                return new Chart(ctx, {\n                    type: 'line',\n                    data: { labels: labels, datasets: datasets },\n                    options: {\n                        responsive: true,\n                        maintainAspectRatio: false,\n                        interaction: { mode: 'index', intersect: false },\n                        scales: {\n                            x: {\n                                type: 'time',\n                                time: { tooltipFormat: 'yyyy-MM-dd HH:mm' },\n                                grid: { color: '#eee' },\n                                ticks: { color: '#666', font: { size: 11 } },\n                            },\n                            y: {\n                                beginAtZero: true,\n                                grid: { color: '#eee' },\n                                ticks: {\n                                    color: '#666',\n                                    font: { size: 11 },\n                                    callback: function (val) { return val.toFixed(1) + ' T'; },\n                                },\n                                title: {\n                                    display: true,\n                                    text: 'bits per second',\n                                    color: '#666',\n                                    font: { size: 11 },\n                                },\n                            },\n                        },\n                        plugins: {\n                            legend: { display: false },\n                            tooltip: {\n                                callbacks: {\n                                    label: function (c) { return c.dataset.label + ': ' + c.parsed.y.toFixed(2) + ' Tbps'; },\n                                },\n                            },\n                        },\n                    },\n                });\n            }\n\n            function showError(canvasId, msg) {\n                show(canvasId + '-loading', 'none');\n                var err = document.getElementById(canvasId + '-error');\n                if (err) {\n                    err.textContent = 'B\u0142\u0105d: ' + msg;\n                    err.style.display = 'block';\n                }\n            }\n\n            async function main() {\n                try {\n                    var xml = await fetchXML();\n\n                    var now = Date.now();\n                    var DAYS_30 = 30 * 24 * 3600 * 1000;\n                    var DAYS_365 = 365 * 24 * 3600 * 1000;\n\n                    var dayData = smoothDips(parseRRA(xml, 0));\n                    var monthData = parseRRA(xml, 2).filter(function (d) { return d.timestamp >= now - DAYS_30; });\n                    \/\/ Year chart uses MAX-consolidation RRA (RRA 7, 37h MAX) \u2014 RRA 3 averages over 24h\n                    \/\/ and smooths short spikes to ~half their real value, making chart and KPI peak inconsistent.\n                    var yearData = parseRRA(xml, 7).filter(function (d) { return d.timestamp >= now - DAYS_365; });\n                    var monthPeakData = parseRRA(xml, 6).filter(function (d) { return d.timestamp >= now - DAYS_30; });\n\n                    if (dayData.length === 0 && monthData.length === 0 && yearData.length === 0) {\n                        throw new Error('Brak danych w XML');\n                    }\n\n                    if (document.getElementById('chart-day')) {\n                        if (dayData.length > 0) {\n                            show('chart-day-loading', 'none');\n                            renderKPI('chart-day', dayData, true);\n                            renderStats('stats-day', calcStats(dayData, 'output'));\n                            createAreaChart('chart-day', dayData, true);\n                        } else {\n                            showError('chart-day', 'Brak danych');\n                        }\n                    }\n\n                    if (document.getElementById('chart-month')) {\n                        if (monthData.length > 0) {\n                            show('chart-month-loading', 'none');\n                            renderKPI('chart-month', monthPeakData.length > 0 ? monthPeakData : monthData, true);\n                            renderStats('stats-month', calcStats(monthData, 'output'));\n                            createAreaChart('chart-month', monthData, false);\n                        } else {\n                            showError('chart-month', 'Brak danych');\n                        }\n                    }\n\n                    if (document.getElementById('chart-year')) {\n                        if (yearData.length > 0) {\n                            show('chart-year-loading', 'none');\n                            renderKPI('chart-year', yearData, false);\n                            renderStats('stats-year', calcStats(yearData, 'output'));\n                            createAreaChart('chart-year', yearData, false);\n                        } else {\n                            showError('chart-year', 'Brak danych');\n                        }\n                    }\n                } catch (err) {\n                    ['chart-day', 'chart-month', 'chart-year'].forEach(function (id) {\n                        if (document.getElementById(id)) showError(id, err.message);\n                    });\n                    console.error(err);\n                }\n            }\n\n            if (document.readyState === 'loading') {\n                document.addEventListener('DOMContentLoaded', main);\n            } else {\n                main();\n            }\n        })();\n        <\/script>\n                                <\/div>\n                    <\/div>\n                <\/div>\n                <div class=\"col-12 col-lg-6 pr-lg-0 px-0 pl-lg-2 pr-lg-3\">\n                    <div class=\"banner-type-9__box-bg p-3 p-lg-0 pl-lg-5 banner-type-9__col-right\n                        \"\n                         style=\"background-color: #fff;\">\n                                                    <h3 class=\"banner-type-9__title mt-2 mb-3 mb-lg-5\">Platforma w liczbach<\/h3>\n                                                                        <div class=\"row\">\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2022\/02\/Conecta-40x.png\" alt=\"Po\u0142\u0105czoneASN\"\/><\/div>\n                                <span class=\"icon-header\">410<\/span>\n                                <span class=\"icon-text\">Po\u0142\u0105czone<br>ASN<\/span>\n                            <\/div>\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Graph_Pie_chart-F16E00-40x40-1.png\" alt=\"Pojemno\u015b\u0107(Tbit)\"\/><\/div>\n                                <span class=\"icon-header\">40<\/span>\n                                <span class=\"icon-text\">Pojemno\u015b\u0107<br>(Tbit)<\/span>\n                            <\/div>\n                            <div class=\"col-4\">\n                                <div class=\"icon-holder\"><img decoding=\"async\" class=\"icon-icon\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Data-centre-52x40-1.png\" alt=\"Port\u00f3ww u\u017cyciu\"\/><\/div>\n                                <span class=\"icon-header\">400<\/span>\n                                <span class=\"icon-text\">Port\u00f3w<br>w u\u017cyciu<\/span>\n                            <\/div>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    \n\n            \n            \n            <div\n                                class=\"banner-type-1 position-relative \"\n                style=\"background-color: #000000; box-shadow: 0 0 0 100vmax #000000; clip-path: inset(0 -100vmax);\"\n            >\n                <img decoding=\"async\" class=\"banner-type-1__image position-relative d-none d-sm-block\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2026\/03\/banner-type-12-desktop-1.png\" style=\"max-height: 360px; width: auto; min-width: 0; max-width: none; margin-left: auto; margin-right: 0; left: 0; transform: none; display: block;\"\/>\n                <div\n                    class=\"banner-type-1__background-mobile d-sm-none position-absolute\"\n                    style=\"background-color: #000000\"\n                ><\/div>\n                <div class=\"banner-type-1__feed position-sm-absolute d-flex flex-column py-4 py-md-3 py-sm-0\">\n                    <div class=\"h-sm-60 d-flex align-items-end\">\n                                                    <h2 class=\"banner-type-1__title text-white banner-type-1__title_6a2f9e2a60370\">\n                                Do\u0142\u0105cz do TPIX<br \/>Wype\u0142nij formularz, a nasz doradca skontaktuje si\u0119 z Tob\u0105 najszybciej, jak to mo\u017cliwe                            <\/h2>\n                                            <\/div>\n                    <div class=\"h-sm-40\">\n                                                                            <a                                href=\"\/tpix\/kontakt\/\"                                                                class=\"button button-large button-orange btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none mt-3\"\n                            >\n                Skontaktuj si\u0119\u00a0z nami            <\/a>\n                                                    <\/div>\n                <\/div>\n            <\/div>\n        \n\n                <div  class=\"newests-posts3 pl-0 pr-0 pl-0\n                pb-5\">\n            <div class=\"my-1 my-sm-3\">\n\n                                    <div class=\"d-flex justify-content-between align-items-center mt-5 mb-3 mb-sm-3 mb-lg-2 pb-1 pb-sm-3 pb-lg-4\">\n                        <h2 class=\"newests-posts3__title mb-0\">Aktualno\u015bci<\/h2>\n                        <a href=\"https:\/\/hurt-orange.pl\/tpix\/aktualnosci\" class=\"font-weight-bold\">Zobacz wszystkie<\/a>\n                    <\/div>\n                \n                                                                                \n                            <div class=\"row\">\n                            <div class=\"col-12 col-lg-6\">\n                                        <div class=\"h-100 featured-post d-flex align-items-stretch flex-column\">\n        <div class=\"hero-image-container\">\n                            <img decoding=\"async\" class=\"img-fluid hero-image\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2026\/02\/222300-zajawka_TPIX-1081x570-1.jpg\" alt=\"\"\/>\n                    <\/div>\n        <div class=\"news-content h-100\">\n            <h3 class=\"newests-posts3__item__title featured-title\">Lokalne zamykanie ruchu w TPIX &#8211; wi\u0119ksze bezpiecze\u0144stwo i wy\u017csza jako\u015b\u0107 bez dodatkowych koszt\u00f3w<\/h3>\n            <small>2026-02-19<\/small>\n            <p class=\"newests-posts3__item__sneak-peak mb-3 mt-3 featured-post-content\">Wdro\u017cyli\u015bmy lokalne zamykanie ruchu w TPIX, co oznacza, \u017ce ruch internetowy nie musi ju\u017c przechodzi\u0107 przez PoP w Warszawie.<\/p>\n                                    <a                                href=\"https:\/\/hurt-orange.pl\/tpix\/2026\/02\/lokalne-zamykanie-ruchu-w-tpix-wieksze-bezpieczenstwo-i-wyzsza-jakosc-bez-dodatkowych-kosztow\/\"                                                                class=\"button button-small button-orange btn-sm m-0 rounded-0\n                text-decoration-none d-inline-block shadow-none \"\n                            >\n                Sprawd\u017a            <\/a>\n        \n        <\/div>\n    <\/div>\n                                <\/div>\n                            <div class=\"col-12 col-lg-6 pt-lg-0 pt-5\">\n                                                \n                    \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Prace planowe w TPIX 2026-02-19<\/h3>\n                <small>2026-02-11<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    Na 2026-02-19 04:00 zaplanowane s\u0105 prace na route serwerze TPIX RS2. Czas niedost\u0119pno\u015bci tpix-rs2 do 15 minut.                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2026\/02\/prace-planowe-w-tpix-2026-02-19\/\" title=\"Prace planowe w TPIX 2026-02-19\"><strong>wi\u0119cej<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Awaryjny restart switcha w TPIX<\/h3>\n                <small>2026-01-29<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    2026-01-29 o 14:30 wykonali\u015bmy awaryjny restart jednego z urz\u0105dze\u0144 w TPIX                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2026\/01\/awaryjny-restart-switcha-w-tpix\/\" title=\"Awaryjny restart switcha w TPIX\"><strong>wi\u0119cej<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                                            <div class=\"newests-posts3__item mb-3\">\n        <div class=\"d-flex align-items-center justify-content-between\">\n            <div class=\"newests-posts3__item__feed d-flex flex-column\">\n                <h3 class=\"newests-posts3__item__title\">Nieplanowany restart karty na switchu 2026-01-29<\/h3>\n                <small>2026-01-29<\/small>\n                <p class=\"newests-posts3__item__sneak-peak mb-3\">\n                    2026-01-29 w godzinach 01:00 i 01:45 wyst\u0105pi\u0142y samoczynne restarty jednej karty FPC na switchu TPIX.                    <a href=\"https:\/\/hurt-orange.pl\/tpix\/2026\/01\/nieplanowany-restart-karty-na-switchu-2026-01-29\/\" title=\"Nieplanowany restart karty na switchu 2026-01-29\"><strong>wi\u0119cej<\/strong><\/a>\n                <\/p>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n                                \n                    <\/div><\/div>\n                            <\/div>\n        <\/div>\n    \n\n                        <div\n                                class=\"boxes-grid-type-3 boxes-grid-type-3__spacing--p position-relative\"\n            >\n                <div>\n                    <div class=\"boxes-grid-type-3__background position-absolute\"><\/div>\n                                            <div class=\"d-flex justify-content-between mb-3 mb-sm-3 mb-lg-2 pb-1 pb-sm-3 pb-lg-4\">\n                            <h2 class=\"boxes-grid-type-3__title mb-0\">Dlaczego wybra\u0107 TPIX?<\/h2>\n                        <\/div>\n                                        <div class=\"boxes-grid-type-3__boxes row mx-0\">\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Money-box-F16E00-50x50-1.png\" alt=\"Oszcz\u0119dzasz\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            Oszcz\u0119dzasz                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>Kupuj\u0105c u nas transport WDM, otrzymujesz VLAN do open peeringu TPIX w cenie samej transmisji, bez dodatkowych op\u0142at.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/Cyberfilter-F16E00-50x41-1.png\" alt=\"Ubezpieczasz si\u0119 technologicznie\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            Ubezpieczasz si\u0119 technologicznie                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>TPIX umo\u017cliwia szybkie reagowanie na zmieniaj\u0105c\u0105 si\u0119 sytuacj\u0119, dok\u0142adanie pasma lub kolejnych VLAN-\u00f3w w razie potrzeby lub nag\u0142ego wzrostu ruchu w sieci.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                                                                <div class=\"boxes-grid-type-3__boxes-background col-12 col-md-4 px-0\">\n                                \n    <div class=\"\">\n        <div class=\"boxes-grid-type-3__box overflow-hidden p-4 mx-auto\">\n            <div class=\"p-1 d-flex flex-column justify-content-between h-100\">\n                <div class=\"boxes-grid-type-3__box__title mt-lg-2 mb-3 position-relative\">\n                                            <img decoding=\"async\" src=\"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2023\/10\/internet_browser_F16E00-50x50-1.png\" alt=\"Poprawiasz jako\u015b\u0107 \u017ar\u00f3de\u0142 internetu\" class=\"mb-2\"\/>\n                                                                <h5 class=\"boxes-grid-type-3__box__title-h mb-3 pb-1\">\n                            Poprawiasz jako\u015b\u0107 \u017ar\u00f3de\u0142 internetu                        <\/h5>\n                                    <\/div>\n                <div class=\"boxes-grid-type-3__box__description m-0\">\n                    <p>Dw\u00f3ch dostawc\u00f3w ruchu zamiast jednego to internet wy\u017cszej jako\u015bci dla Twoich klient\u00f3w i bardziej niezawodna sie\u0107.<\/p>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n                                <\/div>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        ","protected":false},"excerpt":{"rendered":"<p>Stabilna i bezpieczna wymiana ruchu IP.<\/p>\n","protected":false},"author":5,"featured_media":5576,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":true,"footnotes":""},"categories":[],"tags":[],"class_list":["post-12855","page","type-page","status-publish","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TPIX<\/title>\n<meta name=\"description\" content=\"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hurt-orange.pl\/tpix\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TPIX - platforma wymiany ruchu IP\" \/>\n<meta property=\"og:description\" content=\"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hurt-orange.pl\/tpix\/\" \/>\n<meta property=\"og:site_name\" content=\"TPIX\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-19T12:35:07+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minuta\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/\",\"url\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/\",\"name\":\"TPIX - platforma wymiany ruchu IP\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/U307231_medium_kafle_300x200.jpg\",\"datePublished\":\"2022-01-20T13:06:14+00:00\",\"dateModified\":\"2026-02-19T12:35:07+00:00\",\"description\":\"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu\",\"inLanguage\":\"pl-PL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/#primaryimage\",\"url\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/U307231_medium_kafle_300x200.jpg\",\"contentUrl\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/U307231_medium_kafle_300x200.jpg\"},{\"@type\":\"WebSite\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#website\",\"url\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/\",\"name\":\"TPIX\",\"description\":\"Platforma wymiany ruchu internetowego\",\"publisher\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pl-PL\"},{\"@type\":\"Organization\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#organization\",\"name\":\"TPIX\",\"url\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pl-PL\",\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logo.png\",\"contentUrl\":\"https:\\\/\\\/hurt-orange.pl\\\/tpix\\\/wp-content\\\/uploads\\\/2020\\\/11\\\/logo.png\",\"caption\":\"TPIX\"},\"image\":{\"@id\":\"http:\\\/\\\/172.104.150.138\\\/tpix\\\/#\\\/schema\\\/logo\\\/image\\\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TPIX","description":"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hurt-orange.pl\/tpix\/","og_locale":"pl_PL","og_type":"article","og_title":"TPIX - platforma wymiany ruchu IP","og_description":"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu","og_url":"https:\/\/hurt-orange.pl\/tpix\/","og_site_name":"TPIX","article_modified_time":"2026-02-19T12:35:07+00:00","twitter_card":"summary_large_image","twitter_misc":{"Szacowany czas czytania":"1 minuta"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/hurt-orange.pl\/tpix\/","url":"https:\/\/hurt-orange.pl\/tpix\/","name":"TPIX - platforma wymiany ruchu IP","isPartOf":{"@id":"http:\/\/172.104.150.138\/tpix\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hurt-orange.pl\/tpix\/#primaryimage"},"image":{"@id":"https:\/\/hurt-orange.pl\/tpix\/#primaryimage"},"thumbnailUrl":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2021\/02\/U307231_medium_kafle_300x200.jpg","datePublished":"2022-01-20T13:06:14+00:00","dateModified":"2026-02-19T12:35:07+00:00","description":"Stabilna i bezpieczna platforma wymiany ruchu internetowego - Wygodne po\u0142\u0105czenie ze wszystkimi znacz\u0105cymi operatorami w Polsce oraz \u017ar\u00f3d\u0142ami ruchu","inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hurt-orange.pl\/tpix\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/hurt-orange.pl\/tpix\/#primaryimage","url":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2021\/02\/U307231_medium_kafle_300x200.jpg","contentUrl":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2021\/02\/U307231_medium_kafle_300x200.jpg"},{"@type":"WebSite","@id":"http:\/\/172.104.150.138\/tpix\/#website","url":"http:\/\/172.104.150.138\/tpix\/","name":"TPIX","description":"Platforma wymiany ruchu internetowego","publisher":{"@id":"http:\/\/172.104.150.138\/tpix\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/172.104.150.138\/tpix\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"http:\/\/172.104.150.138\/tpix\/#organization","name":"TPIX","url":"http:\/\/172.104.150.138\/tpix\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"http:\/\/172.104.150.138\/tpix\/#\/schema\/logo\/image\/","url":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2020\/11\/logo.png","contentUrl":"https:\/\/hurt-orange.pl\/tpix\/wp-content\/uploads\/2020\/11\/logo.png","caption":"TPIX"},"image":{"@id":"http:\/\/172.104.150.138\/tpix\/#\/schema\/logo\/image\/"}}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages\/12855","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/comments?post=12855"}],"version-history":[{"count":0,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/pages\/12855\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/media?parent=12855"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/categories?post=12855"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hurt-orange.pl\/tpix\/wp-json\/wp\/v2\/tags?post=12855"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}