{"id":2961,"date":"2025-09-06T04:41:12","date_gmt":"2025-09-06T04:41:12","guid":{"rendered":"https:\/\/garyhengeveld.com\/wordpress\/?p=2961"},"modified":"2026-03-05T15:23:34","modified_gmt":"2026-03-05T15:23:34","slug":"pc-info-snapshot","status":"publish","type":"post","link":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/","title":{"rendered":"PC Info Snapshot"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\">\n  <title>System Info Viewer<\/title>\n  <style>\n    body {\n      font-family: sans-serif;\n      background: #fff;\n      color: #000;\n      padding: 20px;\n    }\n    h1 {\n      color: #003366;\n      border-bottom: 2px solid #003366;\n      padding-bottom: 5px;\n    }\n    h2 {\n      color: #0055aa;\n      margin-top: 30px;\n    }\n    input, select {\n      margin: 5px;\n      padding: 5px;\n      width: 120px;\n      border: 1px solid #ccc;\n      border-radius: 4px;\n    }\n    button {\n      margin: 10px;\n      padding: 6px 12px;\n      background-color: #0055aa;\n      color: #fff;\n      border: none;\n      border-radius: 4px;\n      cursor: pointer;\n    }\n    button:hover {\n      background-color: #003366;\n    }\n    .calc {\n      margin-bottom: 30px;\n      border-bottom: 1px solid #ccc;\n      padding-bottom: 20px;\n    }\n    label {\n      display: inline-block;\n      width: 220px;\n    }\n    .result {\n      margin-top: 10px;\n      color: #aa0000;\n      font-weight: bold;\n    }\n  <\/style>\n<\/head>\n<body>\n  <h1> PC Info Snapshot<\/h1>\n  <pre id=\"info\">Loading...<\/pre>\n  <video id=\"camera\" autoplay muted playsinline><\/video>\n\n  <script>\n    async function getInfo() {\n      const info = {};\n\n      \/\/ Basic Navigator Info\n      info.userAgent = navigator.userAgent;\n      info.platform = navigator.platform;\n      info.language = navigator.language;\n      info.languages = navigator.languages;\n      info.cookieEnabled = navigator.cookieEnabled;\n      info.hardwareConcurrency = navigator.hardwareConcurrency;\n      info.deviceMemory = navigator.deviceMemory || 'N\/A';\n      info.onLine = navigator.onLine;\n\n      \/\/ Screen Info\n      info.screen = {\n        width: screen.width,\n        height: screen.height,\n        colorDepth: screen.colorDepth,\n        pixelDepth: screen.pixelDepth,\n        orientation: screen.orientation?.type || 'N\/A'\n      };\n\n      \/\/ Window Info\n      info.window = {\n        innerWidth: window.innerWidth,\n        innerHeight: window.innerHeight,\n        outerWidth: window.outerWidth,\n        outerHeight: window.outerHeight,\n        devicePixelRatio: window.devicePixelRatio\n      };\n\n      \/\/ Timezone & Locale\n      info.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n      info.locale = Intl.DateTimeFormat().resolvedOptions().locale;\n\n      \/\/ Battery Info\n      try {\n        const battery = await navigator.getBattery();\n        info.battery = {\n          charging: battery.charging,\n          level: battery.level,\n          chargingTime: battery.chargingTime,\n          dischargingTime: battery.dischargingTime\n        };\n      } catch {\n        info.battery = 'Battery API not available';\n      }\n\n      \/\/ Permissions\n      try {\n        const permissions = ['geolocation', 'notifications', 'camera', 'microphone', 'clipboard-read'];\n        info.permissions = {};\n        for (const perm of permissions) {\n          const status = await navigator.permissions.query({ name: perm });\n          info.permissions[perm] = status.state;\n        }\n      } catch {\n        info.permissions = 'Permission API not available';\n      }\n\n      \/\/ Public IP + Simulated Ping\n      try {\n        const start = performance.now();\n        const res = await fetch('https:\/\/api.ipify.org?format=json');\n        const end = performance.now();\n        const data = await res.json();\n        info.publicIP = data.ip;\n        info.publicIP_ping_ms = Math.round(end - start);\n      } catch {\n        info.publicIP = 'Unable to retrieve IP';\n        info.publicIP_ping_ms = 'N\/A';\n      }\n\n      \/\/ Local IPs via WebRTC\n      info.localIPs = [];\n      try {\n        const pc = new RTCPeerConnection({ iceServers: [] });\n        pc.createDataChannel('');\n        pc.createOffer().then(offer => pc.setLocalDescription(offer));\n        pc.onicecandidate = event => {\n          if (event && event.candidate) {\n            const parts = event.candidate.candidate.split(' ');\n            const ip = parts[4];\n            if (ip && !info.localIPs.includes(ip)) {\n              info.localIPs.push(ip);\n              document.getElementById('info').textContent = JSON.stringify(info, null, 2);\n            }\n          }\n        };\n      } catch {\n        info.localIPs = ['WebRTC not supported'];\n      }\n\n      \/\/ Geolocation\n      info.location = 'Waiting for permission...';\n      if ('geolocation' in navigator) {\n        navigator.geolocation.getCurrentPosition(\n          pos => {\n            info.location = {\n              latitude: pos.coords.latitude,\n              longitude: pos.coords.longitude,\n              accuracy_meters: pos.coords.accuracy,\n              timestamp: new Date(pos.timestamp).toISOString()\n            };\n            document.getElementById('info').textContent = JSON.stringify(info, null, 2);\n          },\n          err => {\n            info.location = `Error: ${err.message}`;\n            document.getElementById('info').textContent = JSON.stringify(info, null, 2);\n          },\n          { enableHighAccuracy: true, timeout: 5000, maximumAge: 0 }\n        );\n      } else {\n        info.location = 'Geolocation not supported';\n      }\n\n      \/\/ Media Devices\n      try {\n        const devices = await navigator.mediaDevices.enumerateDevices();\n        info.mediaDevices = devices.map(d => ({\n          kind: d.kind,\n          label: d.label || 'Permission required',\n          deviceId: d.deviceId\n        }));\n      } catch {\n        info.mediaDevices = 'Media device enumeration failed';\n      }\n\n      \/\/ Touch Support\n      info.touchSupport = 'ontouchstart' in window || navigator.maxTouchPoints > 0;\n\n      \/\/ Storage Estimate\n      try {\n        const { quota, usage } = await navigator.storage.estimate();\n        info.storage = {\n          quotaMB: Math.round(quota \/ 1024 \/ 1024),\n          usageMB: Math.round(usage \/ 1024 \/ 1024),\n          percentUsed: Math.round((usage \/ quota) * 100)\n        };\n      } catch {\n        info.storage = 'Storage API not available';\n      }\n\n      \/\/ WebGL Info\n      try {\n        const canvas = document.createElement('canvas');\n        const gl = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n        const debugInfo = gl.getExtension('WEBGL_debug_renderer_info');\n        info.webGL = {\n          vendor: gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL),\n          renderer: gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL)\n        };\n      } catch {\n        info.webGL = 'WebGL not supported or blocked';\n      }\n\n      \/\/ Referrer & Navigation\n      info.referrer = document.referrer;\n      info.navigationType = performance.getEntriesByType('navigation')[0]?.type || 'unknown';\n\n      \/\/ Fonts (experimental)\n      try {\n        info.fontsLoaded = Array.from(document.fonts).map(f => f.family);\n      } catch {\n        info.fontsLoaded = 'Font API not available';\n      }\n\n      \/\/ Initial display\n      document.getElementById('info').textContent = JSON.stringify(info, null, 2);\n    }\n\n    async function startCamera() {\n      try {\n        const stream = await navigator.mediaDevices.getUserMedia({ video: true });\n        document.getElementById('camera').srcObject = stream;\n      } catch (err) {\n        console.error('Camera access denied or unavailable:', err);\n      }\n    }\n\n    getInfo();\n    startCamera();\n  <\/script>\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>System Info Viewer PC Info Snapshot Loading&#8230;<\/p>\n","protected":false},"author":1,"featured_media":2962,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wprm-recipe-roundup-name":"","wprm-recipe-roundup-description":"","footnotes":""},"categories":[21,106],"tags":[],"class_list":["post-2961","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","category-software"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\r\n<title>PC Info Snapshot - GaryHengeveld<\/title>\r\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\r\n<link rel=\"canonical\" href=\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\" \/>\r\n<meta property=\"og:locale\" content=\"en_US\" \/>\r\n<meta property=\"og:type\" content=\"article\" \/>\r\n<meta property=\"og:title\" content=\"PC Info Snapshot - GaryHengeveld\" \/>\r\n<meta property=\"og:description\" content=\"System Info Viewer PC Info Snapshot Loading...\" \/>\r\n<meta property=\"og:url\" content=\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\" \/>\r\n<meta property=\"og:site_name\" content=\"GaryHengeveld\" \/>\r\n<meta property=\"article:published_time\" content=\"2025-09-06T04:41:12+00:00\" \/>\r\n<meta property=\"article:modified_time\" content=\"2026-03-05T15:23:34+00:00\" \/>\r\n<meta property=\"og:image\" content=\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp\" \/>\r\n\t<meta property=\"og:image:width\" content=\"128\" \/>\r\n\t<meta property=\"og:image:height\" content=\"128\" \/>\r\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\r\n<meta name=\"author\" content=\"ghd796\" \/>\r\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\r\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ghd796\" \/>\r\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\"},\"author\":{\"name\":\"ghd796\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988\"},\"headline\":\"PC Info Snapshot\",\"datePublished\":\"2025-09-06T04:41:12+00:00\",\"dateModified\":\"2026-03-05T15:23:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\"},\"wordCount\":9,\"publisher\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988\"},\"image\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp\",\"articleSection\":[\"Programming\",\"Software\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\",\"url\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\",\"name\":\"PC Info Snapshot - GaryHengeveld\",\"isPartOf\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp\",\"datePublished\":\"2025-09-06T04:41:12+00:00\",\"dateModified\":\"2026-03-05T15:23:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage\",\"url\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp\",\"contentUrl\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp\",\"width\":128,\"height\":128},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/garyhengeveld.com\/wordpress\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PC Info Snapshot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#website\",\"url\":\"https:\/\/garyhengeveld.com\/wordpress\/\",\"name\":\"GaryHengeveld\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/garyhengeveld.com\/wordpress\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988\",\"name\":\"ghd796\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2026\/03\/GLOGO.png\",\"contentUrl\":\"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2026\/03\/GLOGO.png\",\"width\":150,\"height\":150,\"caption\":\"ghd796\"},\"logo\":{\"@id\":\"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/garyhengeveld.com\/wordpress\/author\/ghd796\/\"}]}<\/script>\r\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PC Info Snapshot - GaryHengeveld","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:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/","og_locale":"en_US","og_type":"article","og_title":"PC Info Snapshot - GaryHengeveld","og_description":"System Info Viewer PC Info Snapshot Loading...","og_url":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/","og_site_name":"GaryHengeveld","article_published_time":"2025-09-06T04:41:12+00:00","article_modified_time":"2026-03-05T15:23:34+00:00","og_image":[{"width":128,"height":128,"url":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp","type":"image\/webp"}],"author":"ghd796","twitter_card":"summary_large_image","twitter_misc":{"Written by":"ghd796"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#article","isPartOf":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/"},"author":{"name":"ghd796","@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988"},"headline":"PC Info Snapshot","datePublished":"2025-09-06T04:41:12+00:00","dateModified":"2026-03-05T15:23:34+00:00","mainEntityOfPage":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/"},"wordCount":9,"publisher":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988"},"image":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage"},"thumbnailUrl":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp","articleSection":["Programming","Software"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/","url":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/","name":"PC Info Snapshot - GaryHengeveld","isPartOf":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/#website"},"primaryImageOfPage":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage"},"image":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage"},"thumbnailUrl":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp","datePublished":"2025-09-06T04:41:12+00:00","dateModified":"2026-03-05T15:23:34+00:00","breadcrumb":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#primaryimage","url":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp","contentUrl":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2025\/09\/5002625.webp","width":128,"height":128},{"@type":"BreadcrumbList","@id":"https:\/\/garyhengeveld.com\/wordpress\/pc-info-snapshot\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/garyhengeveld.com\/wordpress\/"},{"@type":"ListItem","position":2,"name":"PC Info Snapshot"}]},{"@type":"WebSite","@id":"https:\/\/garyhengeveld.com\/wordpress\/#website","url":"https:\/\/garyhengeveld.com\/wordpress\/","name":"GaryHengeveld","description":"","publisher":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/garyhengeveld.com\/wordpress\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/a56bd109b9611da934105651f63c1988","name":"ghd796","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/image\/","url":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2026\/03\/GLOGO.png","contentUrl":"https:\/\/garyhengeveld.com\/wordpress\/wp-content\/uploads\/2026\/03\/GLOGO.png","width":150,"height":150,"caption":"ghd796"},"logo":{"@id":"https:\/\/garyhengeveld.com\/wordpress\/#\/schema\/person\/image\/"},"url":"https:\/\/garyhengeveld.com\/wordpress\/author\/ghd796\/"}]}},"_links":{"self":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2961","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/comments?post=2961"}],"version-history":[{"count":2,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2961\/revisions"}],"predecessor-version":[{"id":2967,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/posts\/2961\/revisions\/2967"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/media\/2962"}],"wp:attachment":[{"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/media?parent=2961"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/categories?post=2961"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/garyhengeveld.com\/wordpress\/wp-json\/wp\/v2\/tags?post=2961"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}