{"id":210,"date":"2026-03-19T12:13:09","date_gmt":"2026-03-19T12:13:09","guid":{"rendered":"https:\/\/www.myuremote.com\/website\/?page_id=210"},"modified":"2026-03-19T12:13:47","modified_gmt":"2026-03-19T12:13:47","slug":"network-scanner","status":"publish","type":"page","link":"https:\/\/www.myuremote.com\/website\/docs\/technical\/network-scanner\/","title":{"rendered":"Network Scanner"},"content":{"rendered":"\n<section style=\"max-width:1000px;margin:0 auto;padding:26px 18px;line-height:1.6;\">\n\n  <header style=\"margin-bottom:18px;\">\n    <h1 style=\"font-size:clamp(26px,4vw,38px);line-height:1.15;margin:0;\">\n      Using the MyURemote Network Scanner\n    <\/h1>\n\n    <p style=\"margin:10px 0 0 0;max-width:940px;\">\n      This page explains how to use the <strong>MyURemote Network Scanner<\/strong> to inspect the local network,\n      verify whether devices are reachable, and retrieve extra protocol-based information such as\n      <strong>DLNA<\/strong> or <strong>Global Cach\u00e9<\/strong> identification.\n      It is intended as a practical technical reference for installers, advanced users,\n      and for internal support\/debugging.\n    <\/p>\n\n    <p style=\"margin:10px 0 0 0;max-width:940px;opacity:.85;\">\n      Key idea: <strong>the Network Scanner is a support and diagnostic tool, not a device onboarding wizard.<\/strong>\n    <\/p>\n  <\/header>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 1. PURPOSE -->\n  <section>\n    <h2>1. What the Network Scanner is for<\/h2>\n\n    <p>\n      The MyURemote Network Scanner is designed as a <strong>general local network inspection tool<\/strong>.\n      It helps determine which hosts are active on the LAN and can optionally enrich those hosts with\n      protocol-specific information.\n    <\/p>\n\n    <p>\n      In practice, the scanner is useful when you want to answer questions such as:\n    <\/p>\n\n    <ul>\n      <li>is the device still visible on the local network?<\/li>\n      <li>does it still have the expected IP address?<\/li>\n      <li>does a Global Cach\u00e9 unit still appear where it should?<\/li>\n      <li>does the device respond to a direct ping test?<\/li>\n      <li>does the device expose DLNA \/ UPnP information?<\/li>\n    <\/ul>\n\n    <p style=\"opacity:.85;\">\n      This is especially helpful during installation, support, troubleshooting,\n      or when a previously working integration appears to stop responding.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 2. CORE PRINCIPLE -->\n  <section>\n    <h2>2. Core principle<\/h2>\n\n    <p>\n      The scanner is built around a clear separation of responsibilities:\n    <\/p>\n\n    <ul>\n      <li><strong>Scan<\/strong> = detect hosts on the subnet<\/li>\n      <li><strong>Ping<\/strong> = test one specific host for support\/debugging<\/li>\n      <li><strong>DLNA \/ GC<\/strong> = enrichment, not the base scan itself<\/li>\n    <\/ul>\n\n    <p>\n      This distinction is important.\n      A device may be perfectly visible on the network even if it does not support DLNA,\n      and a device may support a certain protocol while still requiring a separate support check.\n    <\/p>\n\n    <p style=\"opacity:.85;\">\n      In other words: <strong>host visibility comes first; protocol-specific identification comes afterwards.<\/strong>\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 3. HOW IT WORKS -->\n  <section>\n    <h2>3. How it works<\/h2>\n\n    <p>\n      The Network Scanner runs through the local MyURemote server on <strong>localhost:9090<\/strong>.\n      The frontend in the WebView calls local endpoints, and the native side performs the actual scan.\n    <\/p>\n\n    <p>\n      The high-level flow is:\n    <\/p>\n\n    <ol style=\"margin-top:10px;\">\n      <li>The Network Scanner page is opened.<\/li>\n      <li>The frontend starts the scan.<\/li>\n      <li>The native backend begins scanning the local subnet.<\/li>\n      <li>The frontend polls the current results repeatedly.<\/li>\n      <li>Hosts appear progressively in the list.<\/li>\n      <li>Extra protocol-based information is added later where available.<\/li>\n    <\/ol>\n\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>Frontend (WebView) \u2192 localhost:9090 \u2192 NetworkScannerHandler \u2192 NetworkScannerManager<\/code><\/pre>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 4. LOCAL ENDPOINTS -->\n  <section>\n    <h2>4. Local endpoints used by the scanner<\/h2>\n\n    <p>\n      The scanner communicates through a small set of local endpoints:\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">4.1 Start scan<\/h3>\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>\/networkscanner?mode=start<\/code><\/pre>\n\n    <p>\n      Starts the scan and returns basic scan metadata such as subnet and IP range.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">4.2 Poll scan results<\/h3>\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>\/networkscanner?mode=results<\/code><\/pre>\n\n    <p>\n      Returns the current state of the scan, including the list of hosts found so far.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">4.3 Ping one host<\/h3>\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>\/networkscanner?mode=ping&amp;ip=192.168.0.125<\/code><\/pre>\n\n    <p>\n      Performs a direct reachability \/ latency test on one selected host.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">4.4 DLNA info for one host<\/h3>\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>\/networkscanner?mode=dlnainfo&amp;ip=192.168.0.125<\/code><\/pre>\n\n    <p>\n      Attempts a DLNA \/ SSDP lookup for a single host and returns model-related information if available.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 5. WHAT YOU SEE -->\n  <section>\n    <h2>5. What the scanner shows<\/h2>\n\n    <p>\n      Each host typically appears with a subset of the following data:\n    <\/p>\n\n    <ul>\n      <li>IP address<\/li>\n      <li>hostname<\/li>\n      <li>latency<\/li>\n      <li>MAC address (if available)<\/li>\n      <li>DLNA status and device information<\/li>\n      <li>Global Cach\u00e9 identification, where detected<\/li>\n    <\/ul>\n\n    <p>\n      Example host object:\n    <\/p>\n\n    <pre style=\"background:#f6f7f9;border:1px solid rgba(0,0,0,.08);padding:12px;border-radius:12px;overflow:auto;\"><code>{\n  \"ip\": \"192.168.0.125\",\n  \"hostname\": \"192.168.0.125\",\n  \"latency\": 6,\n  \"mac\": \"\",\n  \"hasDlna\": true,\n  \"friendlyName\": \"Yamaha Receiver\",\n  \"manufacturer\": \"Yamaha Corporation\",\n  \"modelName\": \"RX-A1080\",\n  \"modelNumber\": \"A1080\"\n}<\/code><\/pre>\n\n    <p style=\"opacity:.85;\">\n      Not all fields are always present.\n      Basic host data usually appears first, while DLNA or Global Cach\u00e9 details may appear later.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 6. GLOBAL CACHE -->\n  <section>\n    <h2>6. Global Cach\u00e9 detection<\/h2>\n\n    <p>\n      The scanner can also recognise <strong>Global Cach\u00e9<\/strong> devices.\n      This is especially useful in MyURemote environments because those devices are frequently used as network controllers.\n    <\/p>\n\n    <p>\n      Global Cach\u00e9 detection is not based on DLNA.\n      It uses a separate multicast discovery mechanism.\n    <\/p>\n\n    <p>\n      In practice, this means the scanner can:\n    <\/p>\n\n    <ul>\n      <li>identify that a host is a Global Cach\u00e9 unit<\/li>\n      <li>preserve that identification while the rest of the scan continues<\/li>\n      <li>show extra information such as model\/type where available<\/li>\n    <\/ul>\n\n    <p>\n      Typical examples include:\n    <\/p>\n\n    <ul>\n      <li>GC-100<\/li>\n      <li>iTach IP2IR<\/li>\n      <li>iTach IP2SL<\/li>\n      <li>other Global Cach\u00e9 variants<\/li>\n    <\/ul>\n\n    <p style=\"opacity:.85;\">\n      This is particularly helpful when a system no longer responds as expected and you first need to verify\n      whether the correct Global Cach\u00e9 still exists on the expected IP address.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 7. DLNA -->\n  <section>\n    <h2>7. DLNA \/ UPnP enrichment<\/h2>\n\n    <p>\n      The scanner can optionally enrich hosts with DLNA \/ UPnP information.\n      This is useful for receivers, amplifiers, media renderers and similar devices.\n    <\/p>\n\n    <p>\n      Typical DLNA fields include:\n    <\/p>\n\n    <ul>\n      <li><code>friendlyName<\/code><\/li>\n      <li><code>manufacturer<\/code><\/li>\n      <li><code>modelName<\/code><\/li>\n      <li><code>modelNumber<\/code><\/li>\n      <li><code>deviceType<\/code><\/li>\n      <li><code>udn<\/code><\/li>\n    <\/ul>\n\n    <p>\n      However, DLNA is best understood as <strong>enrichment<\/strong>, not as the basis of the scan.\n      A host may be active and useful even if it exposes no DLNA information at all.\n    <\/p>\n\n    <p style=\"opacity:.85;\">\n      Also note that DLNA responses may appear later than the basic host entry,\n      because multicast responses can arrive asynchronously and some devices answer more slowly than others.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 8. FRONTEND WORKFLOW -->\n  <section>\n    <h2>8. Typical workflow in the app<\/h2>\n\n    <ol style=\"margin-top:10px;\">\n      <li>Open the <strong>Network Scanner<\/strong> page from the Tools menu.<\/li>\n      <li>Start a scan.<\/li>\n      <li>Wait for hosts to appear progressively.<\/li>\n      <li>Use the <strong>PING<\/strong> action if you want to validate direct reachability.<\/li>\n      <li>Use the <strong>DLNA<\/strong> action when you want protocol-specific details for one host.<\/li>\n    <\/ol>\n\n    <p>\n      This makes the scanner useful both as:\n    <\/p>\n\n    <ul>\n      <li>a quick local network overview<\/li>\n      <li>a support\/debug tool for problematic devices<\/li>\n    <\/ul>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 9. PRACTICAL USE CASES -->\n  <section>\n    <h2>9. Practical use cases<\/h2>\n\n    <h3 style=\"margin-top:14px;\">9.1 Verifying whether a device still exists on the network<\/h3>\n    <p>\n      If a previously working device stops responding, the first question is often whether the host is still visible at all.\n      The scanner gives a quick answer.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">9.2 Confirming the IP address of a Global Cach\u00e9 unit<\/h3>\n    <p>\n      A Global Cach\u00e9 controller may still exist but no longer be reachable under the expected IP address.\n      The scanner helps confirm whether the correct unit is still present.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">9.3 Checking whether a receiver exposes DLNA information<\/h3>\n    <p>\n      Some amplifiers and receivers can be identified through DLNA, making it easier to confirm brand, model and role.\n    <\/p>\n\n    <h3 style=\"margin-top:14px;\">9.4 Support and debugging<\/h3>\n    <p>\n      The separate ping action gives a direct, host-level test.\n      This can help distinguish network reachability problems from protocol-specific issues.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 10. PERFORMANCE -->\n  <section>\n    <h2>10. Performance principles<\/h2>\n\n    <p>\n      The scanner is designed to show useful information quickly.\n    <\/p>\n\n    <ul>\n      <li>the first hosts should appear fast<\/li>\n      <li>the UI should not block while scanning continues<\/li>\n      <li>protocol enrichment should not prevent basic host visibility<\/li>\n      <li>slow devices should not make the scanner feel unusable<\/li>\n    <\/ul>\n\n    <p style=\"opacity:.85;\">\n      In practice, this means that scan logic and enrichment logic should remain clearly separated.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 11. IMPORTANT LIMITATIONS -->\n  <section>\n    <h2>11. Important limitations<\/h2>\n\n    <ul>\n      <li>not every host responds reliably to every reachability method<\/li>\n      <li>not every host supports DLNA<\/li>\n      <li>not every host exposes a meaningful hostname<\/li>\n      <li>multicast-based discovery depends on the local network and platform behaviour<\/li>\n      <li>different platforms may behave differently for the same device<\/li>\n    <\/ul>\n\n    <p>\n      In particular:\n    <\/p>\n\n    <ul>\n      <li>Android uses host detection based mainly on <code>InetAddress.isReachable(...)<\/code><\/li>\n      <li>iOS does not offer an identical equivalent and may rely more on hybrid detection techniques<\/li>\n      <li>Android multicast discovery requires a <strong>MulticastLock<\/strong><\/li>\n    <\/ul>\n\n    <p style=\"opacity:.85;\">\n      This means the Network Scanner is best understood as a practical support tool,\n      not as a perfect network inventory engine.\n    <\/p>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 12. DEBUGGING GUIDE -->\n  <section>\n    <h2>12. Quick debugging guide<\/h2>\n\n    <p>\n      When a device does not behave as expected, this is a useful order of checks:\n    <\/p>\n\n    <ol style=\"margin-top:10px;\">\n      <li>Does the IP address appear in the scan?<\/li>\n      <li>Does the host respond to a direct ping test?<\/li>\n      <li>Does manual DLNA info retrieval return anything?<\/li>\n      <li>Does Global Cach\u00e9 discovery identify the host correctly?<\/li>\n    <\/ol>\n\n    <p>\n      This helps separate:\n    <\/p>\n\n    <ul>\n      <li>network visibility problems<\/li>\n      <li>reachability problems<\/li>\n      <li>protocol support problems<\/li>\n      <li>device identification problems<\/li>\n    <\/ul>\n  <\/section>\n\n  <hr style=\"opacity:.25;margin:18px 0;\" \/>\n\n  <!-- 13. SUMMARY -->\n  <section>\n    <h2>13. Summary<\/h2>\n\n    <ul>\n      <li>The MyURemote Network Scanner is a local support and diagnostic tool.<\/li>\n      <li>It detects hosts on the subnet and displays them progressively.<\/li>\n      <li>It offers a separate PING action for support\/debugging.<\/li>\n      <li>It can enrich hosts with DLNA \/ UPnP information where available.<\/li>\n      <li>It can identify Global Cach\u00e9 devices independently of DLNA.<\/li>\n      <li>It should always be understood as: <strong>scan first, enrichment later<\/strong>.<\/li>\n    <\/ul>\n\n    <p style=\"opacity:.85;margin-top:10px;\">\n      Bottom line: <strong>the Network Scanner helps distinguish basic network visibility from protocol-specific device behaviour.<\/strong>\n    <\/p>\n  <\/section>\n\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p>Using the MyURemote Network Scanner This page explains how to use the MyURemote Network Scanner to inspect the local network, verify whether devices are reachable, and retrieve extra protocol-based information such as DLNA or Global Cach\u00e9 identification. It is intended as a practical technical reference for installers, advanced users, and for internal support\/debugging. Key idea: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-210","page","type-page","status-publish","hentry"],"blocksy_meta":{"has_hero_section":"disabled","styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":6}},"_links":{"self":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/comments?post=210"}],"version-history":[{"count":1,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/210\/revisions"}],"predecessor-version":[{"id":211,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/210\/revisions\/211"}],"up":[{"embeddable":true,"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/www.myuremote.com\/website\/wp-json\/wp\/v2\/media?parent=210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}