{"id":2979,"date":"2026-02-24T12:09:06","date_gmt":"2026-02-24T11:09:06","guid":{"rendered":"https:\/\/hb9id.ch\/?page_id=2979"},"modified":"2026-04-17T08:10:00","modified_gmt":"2026-04-17T07:10:00","slug":"cb-rufzeichenlisten-generator-ch","status":"publish","type":"page","link":"https:\/\/hb9id.ch\/index.php\/cb-rufzeichenlisten-generator-ch\/","title":{"rendered":"CB Rufzeichenlisten &#8211; Generator (CH)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Der Rufzeichenlisten-Generator bezieht tagesaktuell die Daten von der Liste des HB9SCBO und stellt diese in verschiedenen Formaten zum Download bereit. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es besteht keine Garantie f\u00fcr die Vollst\u00e4ndigkeit, Akutalit\u00e4t und Richtigkeit der Daten<\/p>\n\n\n    <style>\n        .hb9-wrapper { background: #ffffff; border: 1px solid #e0e0e0; padding: 30px; border-radius: 12px; max-width: 700px; margin: 20px auto; box-shadow: 0 4px 6px rgba(0,0,0,0.05); font-family: sans-serif; }\n        .hb9-header { border-bottom: 2px solid #0056b3; margin-bottom: 20px; padding-bottom: 10px; }\n        .hb9-btn-main { background: #0056b3; color: #fff !important; border: none; padding: 15px 25px; border-radius: 6px; cursor: pointer; font-weight: 600; width: 100%; transition: 0.2s; font-size: 16px; }\n        .hb9-btn-main:hover { background: #004494; }\n        .hb9-status-box { background: #f0f7ff; border: 1px solid #cce5ff; padding: 20px; margin-top: 20px; border-radius: 8px; display: none; text-align: center; }\n        .hb9-counter-large { font-size: 32px; font-weight: bold; color: #0056b3; display: block; }\n        .hb9-modal { display: none; position: fixed; z-index: 9999; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); }\n        .hb9-modal-content { background: #fff; margin: 10% auto; padding: 30px; border-radius: 8px; max-width: 550px; border-top: 10px solid #d32f2f; }\n        .hb9-close-btn { background: #d32f2f; color: white; padding: 12px 25px; border-radius: 4px; cursor: pointer; border: none; font-weight: bold; width: 100%; margin-top: 15px; }\n        .hb9-export-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin-top: 20px; }\n        .hb9-export-btn { background: #fff; border: 1px solid #0056b3; color: #0056b3 !important; padding: 10px; text-align: center; border-radius: 4px; cursor: pointer; font-weight: 500; text-decoration: none; font-size: 14px; }\n        #hb9-loading-spinner { display: none; text-align: center; margin: 20px 0; font-style: italic; color: #666; }\n        #hb9-debug-info { font-size: 10px; color: #999; margin-top: 10px; display: block; }\n    <\/style>\n\n    <div class=\"hb9-wrapper\">\n        <div class=\"hb9-header\"><h2>HB9SCBO Rufzeichen-Manager Pro<\/h2><\/div>\n        <p>Echtzeit-Abruf \u00fcber Hybrid-Routing. Bitte warten Sie, bis die Verbindung stabil ist.<\/p>\n        \n        <button id=\"hb9-fetch-btn\" class=\"hb9-btn-main\" onclick=\"startUltraCapture()\">Scan starten<\/button>\n        <div id=\"hb9-loading-spinner\">Verbindung wird \u00fcber Tunnel gesichert...<\/div>\n\n        <div id=\"hb9-status-display\" class=\"hb9-status-box\">\n            <span id=\"hb9-count-display\" class=\"hb9-counter-large\">0<\/span>\n            <span style=\"font-weight: 500;\">Original-Datens\u00e4tze geladen.<\/span>\n            <div class=\"hb9-export-grid\">\n                <div class=\"hb9-export-btn\" onclick=\"triggerLegalWall('xlsx')\">Excel (.xlsx)<\/div>\n                <div class=\"hb9-export-btn\" onclick=\"triggerLegalWall('pdf')\">PDF<\/div>\n                <div class=\"hb9-export-btn\" onclick=\"triggerLegalWall('csv')\">CSV<\/div>\n                <div class=\"hb9-export-btn\" onclick=\"triggerLegalWall('html')\">HTML<\/div>\n            <\/div>\n            <small id=\"hb9-debug-info\"><\/small>\n        <\/div>\n    <\/div>\n\n    <div id=\"hb9-legal-modal\" class=\"hb9-modal\">\n        <div class=\"hb9-modal-content\" style=\"padding: 30px; text-align: left;\">\n            <h3 style=\"color:#d32f2f; margin-top:0;\">Rechtlicher Hinweis<\/h3>\n            <p>Die Daten wurden erfolgreich von HB9SCBO abgerufen. Beachten Sie, dass die automatisierte Weiterverarbeitung vom Betreiber eingeschr\u00e4nkt sein kann.<\/p>\n            <button class=\"hb9-close-btn\" onclick=\"closeLegalWall()\">Download jetzt starten<\/button>\n        <\/div>\n    <\/div>\n\n    <script>\n    let activeExportType = '';\n    let extractedDataRows = [];\n\n    async function startUltraCapture() {\n        const btn = document.getElementById('hb9-fetch-btn');\n        const spinner = document.getElementById('hb9-loading-spinner');\n        const display = document.getElementById('hb9-status-display');\n        const debug = document.getElementById('hb9-debug-info');\n        \n        btn.disabled = true;\n        spinner.style.display = 'block';\n        display.style.display = 'none';\n\n        const target = \"https:\/\/www.hb9scbo.ch\/de\/rufzeichenliste.htm\";\n        \n        \/\/ Erweiterte Proxy-Liste mit modernen Tunnel-Endpunkten\n        const endpoints = [\n            `https:\/\/api.allorigins.win\/get?url=${encodeURIComponent(target)}&_=${Date.now()}`,\n            `https:\/\/api.codetabs.com\/v1\/proxy?quest=${encodeURIComponent(target)}`,\n            `https:\/\/corsproxy.io\/?${encodeURIComponent(target)}`,\n            `https:\/\/thingproxy.freeboard.io\/fetch\/${encodeURIComponent(target)}`\n        ];\n\n        let success = false;\n\n        for (let i = 0; i < endpoints.length; i++) {\n            try {\n                debug.innerText = `Versuche Routing-Kanal ${i+1}...`;\n                const res = await fetch(endpoints[i]);\n                if (!res.ok) continue;\n\n                let html = '';\n                if (endpoints[i].includes('allorigins')) {\n                    const json = await res.json();\n                    html = json.contents;\n                } else {\n                    html = await res.text();\n                }\n\n                if (html && html.includes('<table')) {\n                    const doc = new DOMParser().parseFromString(html, 'text\/html');\n                    const rows = Array.from(doc.querySelectorAll('table tr'));\n                    \n                    if (rows.length > 1) {\n                        extractedDataRows = rows.map(tr => Array.from(tr.querySelectorAll('td, th')).map(td => td.innerText.trim()));\n                        document.getElementById('hb9-count-display').innerText = rows.length - 1;\n                        debug.innerText = `Erfolgreich \u00fcber Kanal ${i+1}`;\n                        success = true;\n                        break;\n                    }\n                }\n            } catch (e) {\n                console.error(`Kanal ${i+1} fehlgeschlagen`);\n            }\n        }\n\n        if (success) {\n            display.style.display = 'block';\n        } else {\n            alert(\"Der Quellserver blockiert aktuell alle bekannten Tunnel. Bitte versuchen Sie es in einigen Minuten erneut oder nutzen Sie ein VPN.\");\n        }\n        spinner.style.display = 'none';\n        btn.disabled = false;\n    }\n\n    function triggerLegalWall(type) {\n        activeExportType = type;\n        document.getElementById('hb9-legal-modal').style.display = 'block';\n    }\n\n    function closeLegalWall() {\n        document.getElementById('hb9-legal-modal').style.display = 'none';\n        executeRealExport(activeExportType);\n    }\n\n    function executeRealExport(type) {\n        if (extractedDataRows.length === 0) return;\n        const ts = new Date().toISOString().split('T')[0];\n        const fn = `HB9SCBO_Rufzeichenliste_${ts}`;\n        \n        const table = document.createElement('table');\n        extractedDataRows.forEach((rowData, index) => {\n            const tr = document.createElement('tr');\n            rowData.forEach(cellData => {\n                const el = index === 0 ? document.createElement('th') : document.createElement('td');\n                el.innerText = cellData;\n                tr.appendChild(el);\n            });\n            table.appendChild(tr);\n        });\n\n        if (type === 'xlsx') {\n            XLSX.writeFile(XLSX.utils.table_to_book(table), fn + \".xlsx\");\n        } else if (type === 'csv') {\n            XLSX.writeFile(XLSX.utils.table_to_book(table), fn + \".csv\", { bookType: 'csv' });\n        } else if (type === 'pdf') {\n            const { jsPDF } = window.jspdf;\n            const doc = new jsPDF('l', 'pt', 'a4');\n            doc.text(\"HB9SCBO Rufzeichenliste - \" + ts, 40, 30);\n            doc.autoTable({ html: table, startY: 50, theme: 'grid', styles: {fontSize: 8} });\n            doc.save(fn + \".pdf\");\n        } else if (type === 'html') {\n            const blob = new Blob([`<html><body>${table.outerHTML}<\/body><\/html>`], { type: 'text\/html' });\n            const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = fn + \".html\"; a.click();\n        }\n    }\n    <\/script>\n    \n\n\n\n<p class=\"wp-block-paragraph\">(c) by HB9INE<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Der Rufzeichenlisten-Generator bezieht tagesaktuell die Daten von der Liste des HB9SCBO und stellt diese in verschiedenen &hellip; <a title=\"CB Rufzeichenlisten &#8211; Generator (CH)\" class=\"hm-read-more\" href=\"https:\/\/hb9id.ch\/index.php\/cb-rufzeichenlisten-generator-ch\/\"><span class=\"screen-reader-text\">CB Rufzeichenlisten &#8211; Generator (CH)<\/span>Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-2979","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/pages\/2979","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/comments?post=2979"}],"version-history":[{"count":3,"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/pages\/2979\/revisions"}],"predecessor-version":[{"id":3233,"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/pages\/2979\/revisions\/3233"}],"wp:attachment":[{"href":"https:\/\/hb9id.ch\/index.php\/wp-json\/wp\/v2\/media?parent=2979"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}