From ba801be402b294258deb388ec12457d5b7334cfc Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Tue, 3 Feb 2026 07:24:58 +0100 Subject: [PATCH] package/netbrowse: bump to v2.0 Replaces gunicorn+flask app with Go program, same function otherwise. Signed-off-by: Joachim Wiberg --- configs/aarch64_defconfig | 1 - configs/arm_defconfig | 1 - configs/riscv64_defconfig | 1 - configs/x86_64_defconfig | 1 - package/netbrowse/Config.in | 5 +- package/netbrowse/netbrowse.mk | 10 +- package/netbrowse/netbrowse.svc | 4 +- src/netbrowse/.gitignore | 2 +- src/netbrowse/MANIFEST.in | 4 - src/netbrowse/README.md | 34 -- src/netbrowse/browse.go | 176 ++++++ .../{netbrowse/templates => }/browse.html | 66 +-- src/netbrowse/go.mod | 3 + src/netbrowse/main.go | 65 +++ src/netbrowse/netbrowse/__init__.py | 36 -- src/netbrowse/netbrowse/mdns_hosts.py | 97 ---- .../netbrowse/static/images/switch.png | Bin 9100 -> 0 bytes src/netbrowse/pyproject.toml | 29 - .../{netbrowse => }/static/favicon.ico | Bin .../static/images/2533758_8245.svg | 0 src/netbrowse/txt-inventory.md | 539 ------------------ 21 files changed, 279 insertions(+), 795 deletions(-) delete mode 100644 src/netbrowse/MANIFEST.in delete mode 100644 src/netbrowse/README.md create mode 100644 src/netbrowse/browse.go rename src/netbrowse/{netbrowse/templates => }/browse.html (69%) create mode 100644 src/netbrowse/go.mod create mode 100644 src/netbrowse/main.go delete mode 100644 src/netbrowse/netbrowse/__init__.py delete mode 100644 src/netbrowse/netbrowse/mdns_hosts.py delete mode 100644 src/netbrowse/netbrowse/static/images/switch.png delete mode 100644 src/netbrowse/pyproject.toml rename src/netbrowse/{netbrowse => }/static/favicon.ico (100%) rename src/netbrowse/{netbrowse => }/static/images/2533758_8245.svg (100%) delete mode 100644 src/netbrowse/txt-inventory.md diff --git a/configs/aarch64_defconfig b/configs/aarch64_defconfig index e95fc940..bf286aeb 100644 --- a/configs/aarch64_defconfig +++ b/configs/aarch64_defconfig @@ -50,7 +50,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH_OPENSSL=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBSSH2_OPENSSL=y diff --git a/configs/arm_defconfig b/configs/arm_defconfig index cc8cd0af..3c4bdc60 100644 --- a/configs/arm_defconfig +++ b/configs/arm_defconfig @@ -52,7 +52,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBOPENSSL_BIN=y BR2_PACKAGE_LIBINPUT=y diff --git a/configs/riscv64_defconfig b/configs/riscv64_defconfig index bacf46a9..ae04e207 100644 --- a/configs/riscv64_defconfig +++ b/configs/riscv64_defconfig @@ -60,7 +60,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH_OPENSSL=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBSSH2_OPENSSL=y diff --git a/configs/x86_64_defconfig b/configs/x86_64_defconfig index 9f10fa53..474f13b2 100644 --- a/configs/x86_64_defconfig +++ b/configs/x86_64_defconfig @@ -49,7 +49,6 @@ BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN=y BR2_PACKAGE_UBOOT_TOOLS_MKENVIMAGE=y -BR2_PACKAGE_PYTHON_GUNICORN=y BR2_PACKAGE_LIBSSH_OPENSSL=y BR2_PACKAGE_LIBSSH2=y BR2_PACKAGE_LIBSSH2_OPENSSL=y diff --git a/package/netbrowse/Config.in b/package/netbrowse/Config.in index 8781fa37..e466e691 100644 --- a/package/netbrowse/Config.in +++ b/package/netbrowse/Config.in @@ -1,6 +1,5 @@ config BR2_PACKAGE_NETBROWSE bool netbrowse - select BR2_PACKAGE_PYTHON_FLASK + depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS help - Browse mDNS hosts on your network from http://network.local - + Browse mDNS hosts on your network from https://network.local diff --git a/package/netbrowse/netbrowse.mk b/package/netbrowse/netbrowse.mk index a5dd30db..57612e4c 100644 --- a/package/netbrowse/netbrowse.mk +++ b/package/netbrowse/netbrowse.mk @@ -4,10 +4,10 @@ # ################################################################################ -NETBROWSE_VERSION = 1.0 +NETBROWSE_VERSION = 2.0 NETBROWSE_SITE_METHOD = local NETBROWSE_SITE = $(BR2_EXTERNAL_INFIX_PATH)/src/netbrowse -NETBROWSE_SETUP_TYPE = setuptools +NETBROWSE_GOMOD = github.com/kernelkit/infix/src/netbrowse NETBROWSE_LICENSE = MIT NETBROWSE_LICENSE_FILES = LICENSE NETBROWSE_REDISTRIBUTE = NO @@ -15,10 +15,8 @@ NETBROWSE_REDISTRIBUTE = NO define NETBROWSE_INSTALL_EXTRA $(INSTALL) -D -m 0644 $(NETBROWSE_PKGDIR)/netbrowse.svc \ $(FINIT_D)/available/netbrowse.conf - $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/default - echo "NETBROWSE_ARGS=\"network.local $(BR2_TARGET_GENERIC_HOSTNAME).local\"" \ - > $(TARGET_DIR)/etc/default/netbrowse + ln -sf ../available/netbrowse.conf $(FINIT_D)/enabled/netbrowse.conf endef NETBROWSE_POST_INSTALL_TARGET_HOOKS += NETBROWSE_INSTALL_EXTRA -$(eval $(python-package)) +$(eval $(golang-package)) diff --git a/package/netbrowse/netbrowse.svc b/package/netbrowse/netbrowse.svc index 789d0ffa..cf9da41f 100644 --- a/package/netbrowse/netbrowse.svc +++ b/package/netbrowse/netbrowse.svc @@ -1,2 +1,2 @@ -service name:netbrowse @www-data:www-data log:prio:daemon.debug,tag:mdns \ - [2345] gunicorn -w 1 -b 127.0.0.1:8000 netbrowse:app -- Network browser +service name:netbrowse log:prio:daemon.debug,tag:netbrowse \ + [2345] netbrowse -l 127.0.0.1:8000 -- Network browser diff --git a/src/netbrowse/.gitignore b/src/netbrowse/.gitignore index ba0430d2..99ce0235 100644 --- a/src/netbrowse/.gitignore +++ b/src/netbrowse/.gitignore @@ -1 +1 @@ -__pycache__/ \ No newline at end of file +netbrowse diff --git a/src/netbrowse/MANIFEST.in b/src/netbrowse/MANIFEST.in deleted file mode 100644 index 9dbef6c6..00000000 --- a/src/netbrowse/MANIFEST.in +++ /dev/null @@ -1,4 +0,0 @@ -include LICENSE -include README.md -recursive-include netbrowse/templates * -recursive-include netbrowse/static * diff --git a/src/netbrowse/README.md b/src/netbrowse/README.md deleted file mode 100644 index 79b0eecd..00000000 --- a/src/netbrowse/README.md +++ /dev/null @@ -1,34 +0,0 @@ -mDNS Network Browser -==================== - -This program is a Python Flask app that provides an mDNS browser for, -e.g., Nginx. It is intended to answer calls to https://network.local - -A UNIX socket, for fastcgi, is created in `/tmp/netbrowse.sock` with -permissions 0660 as the user and group the program is started as. - -When using Finit this can be achieved with - - service @www-data:www-data netbrowse network.local - -In your Nginx server configuration, add: - - location /browse { - include fastcgi_params; - fastcgi_pass unix:/tmp/netbrowse.sock; - } - -For more a elaborate setup, you can have another server block: - -``` -server { - listen 80; - listen [::]:80; - server_name network.local; - - location / { - include fastcgi_params; - fastcgi_pass unix:/tmp/netbrowse.sock; - } -} -``` diff --git a/src/netbrowse/browse.go b/src/netbrowse/browse.go new file mode 100644 index 00000000..506d030c --- /dev/null +++ b/src/netbrowse/browse.go @@ -0,0 +1,176 @@ +// SPDX-License-Identifier: MIT +package main + +import ( + "fmt" + "log" + "os/exec" + "sort" + "strings" +) + +// Service represents an mDNS service discovered on the network. +type Service struct { + Type string + Name string + URL string + Other bool +} + +type serviceInfo struct { + displayName string + urlTemplate string // empty means no URL +} + +var knownServices = map[string]serviceInfo{ + "_http._tcp": {"HTTP", "http://{address}:{port}{path}"}, + "_https._tcp": {"HTTPS", "https://{address}:{port}{path}"}, + "_netconf-ssh._tcp": {"NETCONF", ""}, + "_restconf-tls._tcp": {"RESTCONF", ""}, + "_ssh._tcp": {"SSH", ""}, + "_sftp-ssh._tcp": {"SFTP", ""}, +} + +var typeOrder = map[string]int{ + "HTTPS": 1, "HTTP": 2, "SSH": 3, "SFTP": 4, +} + +// hasK checks whether avahi-browse supports the -k flag. +func hasK() bool { + out, err := exec.Command("avahi-browse", "--help").CombinedOutput() + if err != nil { + return false + } + return strings.Contains(string(out), "-k") +} + +// scan runs avahi-browse, parses the output, and returns discovered +// services grouped by link (hostname), sorted per host. +func scan() map[string][]Service { + args := "-tarp" + if hasK() { + args += "k" + } + + out, err := exec.Command("avahi-browse", args).Output() + if err != nil { + log.Printf("avahi-browse: %v", err) + return nil + } + + hosts := make(map[string][]Service) + + for _, line := range strings.Split(strings.TrimSpace(string(out)), "\n") { + if line == "" { + continue + } + parts := strings.Split(line, ";") + if len(parts) <= 9 || parts[0] != "=" { + continue + } + + family := parts[2] + serviceName := parts[3] + serviceType := parts[4] + link := parts[6] + address := parts[7] + port := parts[8] + txt := parts[9] + + if family != "IPv4" && family != "IPv6" { + continue + } + + info, known := knownServices[serviceType] + other := !known + displayName := info.displayName + urlTemplate := info.urlTemplate + if !known { + displayName = serviceType + } + + // Parse TXT records for path= and adminurl= + var path, adminurl string + for _, record := range strings.Split(txt, " ") { + stripped := strings.Trim(record, "\"") + if strings.Contains(stripped, "path=") { + path = stripped[strings.LastIndex(stripped, "path=")+5:] + break + } + if strings.Contains(stripped, "adminurl=") { + adminurl = stripped[strings.LastIndex(stripped, "adminurl=")+9:] + break + } + } + + var url string + if adminurl != "" { + url = adminurl + } else if urlTemplate != "" { + url = strings.NewReplacer( + "{address}", address, + "{port}", port, + "{path}", path, + ).Replace(urlTemplate) + } + + svc := Service{ + Type: displayName, + Name: decode(serviceName), + URL: url, + Other: other, + } + + // Deduplicate + dup := false + for _, existing := range hosts[link] { + if existing.Type == svc.Type && existing.Name == svc.Name && existing.URL == svc.URL { + dup = true + break + } + } + if !dup { + hosts[link] = append(hosts[link], svc) + } + } + + // Sort services per host + for link := range hosts { + sort.SliceStable(hosts[link], func(i, j int) bool { + oi := typeOrder[hosts[link][i].Type] + oj := typeOrder[hosts[link][j].Type] + if oi == 0 { + oi = 999 + } + if oj == 0 { + oj = 999 + } + return oi < oj + }) + } + + return hosts +} + +// decode handles avahi escape sequences in service names. +func decode(name string) string { + name = strings.ReplaceAll(name, `\032`, " ") + name = strings.ReplaceAll(name, `\040`, "(") + name = strings.ReplaceAll(name, `\041`, ")") + + // Handle remaining \NNN octal escapes + var b strings.Builder + for i := 0; i < len(name); i++ { + if i+3 < len(name) && name[i] == '\\' && + name[i+1] >= '0' && name[i+1] <= '3' && + name[i+2] >= '0' && name[i+2] <= '7' && + name[i+3] >= '0' && name[i+3] <= '7' { + val := (int(name[i+1]-'0') << 6) | (int(name[i+2]-'0') << 3) | int(name[i+3]-'0') + b.WriteByte(byte(val)) + i += 3 + } else { + b.WriteByte(name[i]) + } + } + return fmt.Sprintf("%s", b.String()) +} diff --git a/src/netbrowse/netbrowse/templates/browse.html b/src/netbrowse/browse.html similarity index 69% rename from src/netbrowse/netbrowse/templates/browse.html rename to src/netbrowse/browse.html index b9bb6117..6e9cdcd0 100644 --- a/src/netbrowse/netbrowse/templates/browse.html +++ b/src/netbrowse/browse.html @@ -12,30 +12,21 @@ .container h1 { text-align: center; text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5); - /* margin-top: 50px; */ - /* margin-bottom: 20px; */ font-size: 32px; color: #333; - padding: 20px; /* Add some padding around the text */ + padding: 20px; } - /* Container for the checkbox for better alignment */ .checkbox-container { - margin-bottom: 20px; /* Spacing between the checkbox and the table */ + margin-bottom: 20px; display: flex; - align-items: center; /* Vertically center the checkbox and label */ + align-items: center; } - /* Styles for the label text for better readability */ .checkbox-container label { margin-left: 5px; font-size: 16px; } - /* Custom checkbox styles if needed */ - input[type="checkbox"] { - /* Custom styles here */ - } .container table { background-color: rgba(255, 255, 255, 0.75); - /* background-color: white; */ } .network-image { display: block; @@ -48,7 +39,6 @@ .other { display: none; } .toggle-button { cursor: pointer; - /* font-size: 20px; */ color: #333; line-height: 1; user-select: none; @@ -57,10 +47,10 @@ html, body { height: 100%; font-family: Arial, sans-serif; - margin: 0; /* 20px */ + margin: 0; padding: 0; /* By kjpargeter https://www.freepik.com/free-vector/network-connections-background_2533758.htm */ - background-image: url('{{ url_for("static", filename="images/2533758_8245.svg") }}'); + background-image: url('/static/images/2533758_8245.svg'); background-size: cover; background-position: center; background-repeat: no-repeat; @@ -69,13 +59,13 @@ border-collapse: collapse; width: 100%; margin: 20px auto; - border: 2px solid rgba(0, 0, 0, 0.1); /* Slight, semi-transparent border */ + border: 2px solid rgba(0, 0, 0, 0.1); box-shadow: 0 2px 4px rgba(0,0,0,0.1); } table tr th:first-child, table tr td:first-child { - width: 1%; /* Minimize the width */ - white-space: nowrap; /* Prevents content from wrapping */ - padding: 10px; /* Adjust padding as needed */ + width: 1%; + white-space: nowrap; + padding: 10px; } th, td { text-align: left; @@ -92,10 +82,7 @@
-
- -

mDNS Hosts and Services

@@ -109,25 +96,25 @@ LinkNameType - {% for link, details in hosts_services.items() %} - {% for service in details.services %} - {% if loop.first %} - - - {% else %} - + {{range $link, $services := .Hosts}} + {{range $i, $svc := $services}} + {{if eq $i 0}} + + + {{else}} + - {% endif %} - {% if service.url %} - {{ link }} - {% else %} - {{ link }} - {% endif %} - {{ service.name }} - {{ service.type }} + {{end}} + {{if $svc.URL}} + {{$link}} + {{else}} + {{$link}} + {{end}} + {{$svc.Name}} + {{$svc.Type}} - {% endfor %} - {% endfor %} + {{end}} + {{end}}
@@ -184,7 +171,6 @@ function toggleAll(checkbox) { const allRows = document.querySelectorAll('.device-row'); - const otherRows = document.querySelectorAll('.other'); allRows.forEach(row => { if (row.classList.contains('other')) diff --git a/src/netbrowse/go.mod b/src/netbrowse/go.mod new file mode 100644 index 00000000..a541d7c4 --- /dev/null +++ b/src/netbrowse/go.mod @@ -0,0 +1,3 @@ +module github.com/kernelkit/infix/src/netbrowse + +go 1.21 diff --git a/src/netbrowse/main.go b/src/netbrowse/main.go new file mode 100644 index 00000000..fdf3f792 --- /dev/null +++ b/src/netbrowse/main.go @@ -0,0 +1,65 @@ +// SPDX-License-Identifier: MIT +package main + +import ( + "context" + "embed" + "flag" + "html/template" + "io/fs" + "log" + "net/http" + "os" + "os/signal" + "syscall" +) + +//go:embed browse.html +var browseHTML string + +//go:embed static +var staticFS embed.FS + +var tmpl = template.Must(template.New("browse").Parse(browseHTML)) + +type pageData struct { + Hosts map[string][]Service +} + +func browseHandler(w http.ResponseWriter, r *http.Request) { + hosts := scan() + w.Header().Set("Content-Type", "text/html; charset=utf-8") + if err := tmpl.Execute(w, pageData{Hosts: hosts}); err != nil { + log.Printf("template: %v", err) + } +} + +func main() { + listen := flag.String("l", "127.0.0.1:8000", "listen address:port") + flag.Parse() + + mux := http.NewServeMux() + mux.HandleFunc("/", browseHandler) + mux.HandleFunc("/netbrowse", browseHandler) + + staticSub, err := fs.Sub(staticFS, "static") + if err != nil { + log.Fatal(err) + } + mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(staticSub)))) + + srv := &http.Server{Addr: *listen, Handler: mux} + + go func() { + sigch := make(chan os.Signal, 1) + signal.Notify(sigch, syscall.SIGTERM, syscall.SIGINT) + <-sigch + log.Println("shutting down") + srv.Shutdown(context.Background()) + }() + + log.Printf("listening on %s", *listen) + if err := srv.ListenAndServe(); err != http.ErrServerClosed { + log.Fatal(err) + } +} diff --git a/src/netbrowse/netbrowse/__init__.py b/src/netbrowse/netbrowse/__init__.py deleted file mode 100644 index d0939052..00000000 --- a/src/netbrowse/netbrowse/__init__.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python3 -""" - Very basic mDNS scanner with HTML table renderer -""" -from flask import Flask, render_template -from .mdns_hosts import MdnsHosts - -__all__ = ['MdnsHosts'] - -app = Flask(__name__) - - -@app.route('/') -@app.route('/netbrowse') -def index(): - """The /browse or network.local application""" - mdns_hosts = MdnsHosts() - hosts_services = mdns_hosts.scan() - - order = {'HTTPS': 1, 'HTTP': 2, 'SSH': 3, 'SFTP': 4} - for _, details in hosts_services.items(): - details['services'].sort(key=lambda x: order.get(x['type'], 999)) - - return render_template('browse.html', hosts_services=hosts_services) - - -def main(): - """Stand-alone running with Flask development server.""" - try: - app.run(debug=True) - except KeyboardInterrupt: - print("Exiting") - - -if __name__ == '__main__': - main() diff --git a/src/netbrowse/netbrowse/mdns_hosts.py b/src/netbrowse/netbrowse/mdns_hosts.py deleted file mode 100644 index cc06cc72..00000000 --- a/src/netbrowse/netbrowse/mdns_hosts.py +++ /dev/null @@ -1,97 +0,0 @@ -""" - Very basic mDNS scanner with HTML table renderer -""" -import subprocess - -class MdnsHosts: - """mDNS scanner class using avahi-browse""" - def hask(self): - """Check if avahi-browse has -k option""" - try: - result = subprocess.run(['avahi-browse', '--help'], check=True, - stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) - return '-k' in result.stdout - except subprocess.CalledProcessError: - return False - - def scan(self): - """Perform mDNS scan and return list of hosts.""" - services = { - '_http._tcp': ('HTTP', 'http://{address}:{port}{path}'), - '_https._tcp': ('HTTPS', 'https://{address}:{port}{path}'), - '_netconf-ssh._tcp': ('NETCONF', None), - '_restconf-tls._tcp': ('RESTCONF', None), - '_ssh._tcp': ('SSH', None), - '_sftp-ssh._tcp': ('SFTP', None), - } - - result = subprocess.run(['avahi-browse', '-tarpk' if self.hask() else '-tarp'], - stdout=subprocess.PIPE, text=True) - lines = result.stdout.strip().split('\n') - hosts_services = {} - - for line in lines: - # print(f"{line}") - - parts = line.split(';') - if len(parts) <= 8 or parts[0] != '=': - continue - - family = parts[2] - service_name = parts[3] - service_type = parts[4] - link = parts[6] - address = parts[7] - port = parts[8] - txt = parts[9] - adminurl = None - - if family not in ('IPv4', 'IPv6'): - continue - - if service_type in services: - identifier, url_template = services[service_type] - other = False - else: - identifier = service_type - url_template = None - other = True - - path = "" - records = txt.split(' ') - for record in records: - stripped = record.strip("\"") - if "path=" in stripped: - path = stripped.split('path=')[-1] - break - if "adminurl=" in stripped: - adminurl = stripped.split('adminurl=')[-1] - break - - if adminurl: - url = adminurl - elif url_template: - url = url_template.format(address=address, port=port, path=path) - else: - url = None - - service_details = { - 'type': identifier, - 'name': self.decode(service_name), - 'url': url, - 'other': other - } - - if link not in hosts_services: - hosts_services[link] = {'services': [service_details]} - elif service_details not in hosts_services[link]['services']: - hosts_services[link]['services'].append(service_details) - - return hosts_services - - def decode(self, name): - """Decode escape sequences like \032 and \040 in service names""" - name = name.replace('\\032', ' ') - name = name.replace('\\040', '(') - name = name.replace('\\041', ')') - return bytes(name, "utf-8").decode("unicode_escape") diff --git a/src/netbrowse/netbrowse/static/images/switch.png b/src/netbrowse/netbrowse/static/images/switch.png deleted file mode 100644 index bd3da20dc09430781997923c2e4985ab81bfd270..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9100 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 diff --git a/src/netbrowse/pyproject.toml b/src/netbrowse/pyproject.toml deleted file mode 100644 index 7b8f39da..00000000 --- a/src/netbrowse/pyproject.toml +++ /dev/null @@ -1,29 +0,0 @@ -[build-system] -requires = ["setuptools>=42", "wheel"] -# build-backend = "setuptools.build_meta" - -[project] -name = "netbrowse" -version = "1.0" -description = "mDNS Service Browser" -authors = [{name = "Joachim Wiberg", email = "troglobit@gmail.com"}] -license = {file = "LICENSE"} -readme = "README.md" -dependencies = [ - "flask", -] - -[project.optional-dependencies] -dev = [ - "pytest>=6.0", - "flake8>=3.8", -] - -# [tool.setuptools.packages.find] -# where = ["netbrowse"] - -# [tool.setuptools.package-data] -# netbrowse = ["templates/*.html", "static/*"] - -[project.scripts] -netbrowse = "netbrowse:main" diff --git a/src/netbrowse/netbrowse/static/favicon.ico b/src/netbrowse/static/favicon.ico similarity index 100% rename from src/netbrowse/netbrowse/static/favicon.ico rename to src/netbrowse/static/favicon.ico diff --git a/src/netbrowse/netbrowse/static/images/2533758_8245.svg b/src/netbrowse/static/images/2533758_8245.svg similarity index 100% rename from src/netbrowse/netbrowse/static/images/2533758_8245.svg rename to src/netbrowse/static/images/2533758_8245.svg diff --git a/src/netbrowse/txt-inventory.md b/src/netbrowse/txt-inventory.md deleted file mode 100644 index 37613b56..00000000 --- a/src/netbrowse/txt-inventory.md +++ /dev/null @@ -1,539 +0,0 @@ -mDNS Browsing Inventory -======================= - -Results of investigation into mDNS TXT records being used by different vendors. -For printers Apple published the Bonjour Printing Specification: - - - -See the Legend below for an overview of collected (known) TXT records of relevance. - - -Other Links ------------ - - - - - - -Available Service Types ------------------------ - - - - -Proposed TXT Records --------------------- - -**Alt. 1** - - "vv=1" "product=Qemu" "ty=VM" "on=Infix" "ov=v24.03.0" "vn=KernelKit" - -**Alt. 2** - - "vv=1" "vendor=Qemu" "product=VM" "ty=x86-64" "vn=KernelKit" "on=Infix" "ov=v24.03.0" - -Legend ------- - -Notice the difference between software and hardware/product related records. - - am : Apple Model - mn : Model Name or role - ty : Type - on : OS Name - ov : OS Version - vn : OS Vendor Name - vs : (Software or) firmware version - vv : Vendor format of mDNS TXT records - pk : Public Key, digest or unique identifier - sf : Status Flags, detailing settings or states of the device - tv : Version of (software or) protocol - - adminurl: Administration interface, e.g. adminurl=http://printer.local/#configPage - apiurl : Endpoint for REST API - vendor : Product Vendor name - product : Product name - model : Product model - path : Path to service, e.g. path=/printer - deviceid: MAC Address - btaddr : Bluetooth address - - -Home LAN --------- - -``` -$ avahi-browse -tarpk -+;eth2;IPv4;GIMLI;_smb._tcp;local -+;qtap9;IPv6;GIMLI;_smb._tcp;local -+;qtap8;IPv6;GIMLI;_smb._tcp;local -+;qtap7;IPv6;GIMLI;_smb._tcp;local -+;qtap6;IPv6;GIMLI;_smb._tcp;local -+;qtap5;IPv6;GIMLI;_smb._tcp;local -+;qtap4;IPv6;GIMLI;_smb._tcp;local -+;qtap3;IPv6;GIMLI;_smb._tcp;local -+;qtap2;IPv6;GIMLI;_smb._tcp;local -+;qtap1;IPv6;GIMLI;_smb._tcp;local -+;qtap0;IPv6;GIMLI;_smb._tcp;local -+;br0;IPv6;GIMLI;_smb._tcp;local -+;lxcbr0;IPv4;GIMLI;_smb._tcp;local -+;virbr0;IPv6;GIMLI;_smb._tcp;local -+;virbr0;IPv4;GIMLI;_smb._tcp;local -+;wlan0;IPv6;LUTHIEN;_smb._tcp;local -+;wlan0;IPv6;GIMLI;_smb._tcp;local -+;wlan0;IPv4;readynas\032\040CIFS\041;_smb._tcp;local -+;wlan0;IPv4;LUTHIEN;_smb._tcp;local -+;wlan0;IPv4;GIMLI;_smb._tcp;local -+;wlan0;IPv4;LIBREELEC;_smb._tcp;local -+;eth0;IPv6;LUTHIEN;_smb._tcp;local -+;eth0;IPv6;GIMLI;_smb._tcp;local -+;eth0;IPv4;readynas\032\040CIFS\041;_smb._tcp;local -+;eth0;IPv4;LUTHIEN;_smb._tcp;local -+;eth0;IPv4;LIBREELEC;_smb._tcp;local -+;eth0;IPv4;GIMLI;_smb._tcp;local -+;lo;IPv4;GIMLI;_smb._tcp;local -+;eth2;IPv4;GIMLI;_device-info._tcp;local -+;qtap9;IPv6;GIMLI;_device-info._tcp;local -+;qtap8;IPv6;GIMLI;_device-info._tcp;local -+;qtap7;IPv6;GIMLI;_device-info._tcp;local -+;qtap6;IPv6;GIMLI;_device-info._tcp;local -+;qtap5;IPv6;GIMLI;_device-info._tcp;local -+;qtap4;IPv6;GIMLI;_device-info._tcp;local -+;qtap3;IPv6;GIMLI;_device-info._tcp;local -+;qtap2;IPv6;GIMLI;_device-info._tcp;local -+;qtap1;IPv6;GIMLI;_device-info._tcp;local -+;qtap0;IPv6;GIMLI;_device-info._tcp;local -+;br0;IPv6;GIMLI;_device-info._tcp;local -+;lxcbr0;IPv4;GIMLI;_device-info._tcp;local -+;virbr0;IPv6;GIMLI;_device-info._tcp;local -+;virbr0;IPv4;GIMLI;_device-info._tcp;local -+;wlan0;IPv6;LUTHIEN;_device-info._tcp;local -+;wlan0;IPv6;GIMLI;_device-info._tcp;local -+;wlan0;IPv4;LIBREELEC;_device-info._tcp;local -+;wlan0;IPv4;LUTHIEN;_device-info._tcp;local -+;wlan0;IPv4;GIMLI;_device-info._tcp;local -+;eth0;IPv6;LUTHIEN;_device-info._tcp;local -+;eth0;IPv6;GIMLI;_device-info._tcp;local -+;eth0;IPv4;LIBREELEC;_device-info._tcp;local -+;eth0;IPv4;LUTHIEN;_device-info._tcp;local -+;eth0;IPv4;GIMLI;_device-info._tcp;local -+;lo;IPv4;GIMLI;_device-info._tcp;local -+;qtap9;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap8;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap7;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap6;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap5;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap4;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap3;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap2;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap1;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap0;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local -+;qtap9;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap8;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap7;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap6;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap5;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap4;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap3;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap2;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap1;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;qtap0;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local -+;wlan0;IPv4;LibreELEC;_sftp-ssh._tcp;local -+;eth0;IPv4;LibreELEC;_sftp-ssh._tcp;local -+;qtap9;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap8;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap7;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap6;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap5;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap4;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap3;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap2;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap1;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap0;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local -+;qtap9;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap9;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap8;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap8;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap7;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap7;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap6;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap6;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap5;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap5;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap4;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap4;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap3;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap3;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap2;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap2;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap1;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap1;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap0;IPv6;Web\032Management\032Interface;_https._tcp;local -+;qtap0;IPv6;Web\032Console\032Interface;_https._tcp;local -+;qtap9;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap8;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap7;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap6;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap5;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap4;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap3;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap2;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap1;IPv6;Web\032Management\032Interface;_http._tcp;local -+;qtap0;IPv6;Web\032Management\032Interface;_http._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local -+;wlan0;IPv4;Itunes\032Server\032on\032readynas;_http._tcp;local -+;wlan0;IPv4;FrontView\032on\032readynas;_http._tcp;local -+;wlan0;IPv4;Kodi\032\040LibreELEC\041;_http._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local -+;eth0;IPv4;Itunes\032Server\032on\032readynas;_http._tcp;local -+;eth0;IPv4;FrontView\032on\032readynas;_http._tcp;local -+;eth0;IPv4;Kodi\032\040LibreELEC\041;_http._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local -+;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local -+;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local -+;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local -+;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local -+;wlan0;IPv6;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local -+;wlan0;IPv4;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local -+;eth0;IPv6;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local -+;eth0;IPv4;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local -+;wlan0;IPv6;3e88005fdb7bd9d8;_trel._udp;local -+;wlan0;IPv4;3e88005fdb7bd9d8;_trel._udp;local -+;eth0;IPv6;3e88005fdb7bd9d8;_trel._udp;local -+;eth0;IPv4;3e88005fdb7bd9d8;_trel._udp;local -+;wlan0;IPv6;Living\032Room;_srpl-tls._tcp;local -+;wlan0;IPv4;Living\032Room;_srpl-tls._tcp;local -+;eth0;IPv6;Living\032Room;_srpl-tls._tcp;local -+;eth0;IPv4;Living\032Room;_srpl-tls._tcp;local -+;wlan0;IPv6;1CB3C90F49FD\064Living\032Room;_raop._tcp;local -+;wlan0;IPv4;1CB3C90F49FD\064Living\032Room;_raop._tcp;local -+;wlan0;IPv4;B827EBAE1BA7\064Kodi\032\040LibreELEC\041;_raop._tcp;local -+;eth0;IPv6;1CB3C90F49FD\064Living\032Room;_raop._tcp;local -+;eth0;IPv4;1CB3C90F49FD\064Living\032Room;_raop._tcp;local -+;eth0;IPv4;B827EBAE1BA7\064Kodi\032\040LibreELEC\041;_raop._tcp;local -+;wlan0;IPv6;Living\032Room;_airplay._tcp;local -+;wlan0;IPv4;Living\032Room;_airplay._tcp;local -+;eth0;IPv6;Living\032Room;_airplay._tcp;local -+;eth0;IPv4;Living\032Room;_airplay._tcp;local -+;wlan0;IPv6;Living\032Room;_companion-link._tcp;local -+;wlan0;IPv4;Living\032Room;_companion-link._tcp;local -+;eth0;IPv6;Living\032Room;_companion-link._tcp;local -+;eth0;IPv4;Living\032Room;_companion-link._tcp;local -+;wlan0;IPv6;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local -+;wlan0;IPv4;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local -+;eth0;IPv6;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local -+;eth0;IPv4;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local -+;wlan0;IPv4;ReadyNAS\032Discovery\032\091readynas\093;_readynas._tcp;local -+;eth0;IPv4;ReadyNAS\032Discovery\032\091readynas\093;_readynas._tcp;local -+;wlan0;IPv4;Itunes\032Server\032on\032readynas;_rsp._tcp;local -+;eth0;IPv4;Itunes\032Server\032on\032readynas;_rsp._tcp;local -+;wlan0;IPv4;Itunes\032Server\032on\032readynas;_daap._tcp;local -+;eth0;IPv4;Itunes\032Server\032on\032readynas;_daap._tcp;local -+;wlan0;IPv4;firefly\032\09174\058da\05838\0586e\0585e\0582a\093;_workstation._tcp;local -+;wlan0;IPv4;readynas\032\091a0\05821\058b7\058c1\0588c\0583a\093;_workstation._tcp;local -+;eth0;IPv4;firefly\032\09174\058da\05838\0586e\0585e\0582a\093;_workstation._tcp;local -+;eth0;IPv4;readynas\032\091a0\05821\058b7\058c1\0588c\0583a\093;_workstation._tcp;local -+;wlan0;IPv4;root\064LibreELEC;_pulse-server._tcp;local -+;eth0;IPv4;root\064LibreELEC;_pulse-server._tcp;local -+;wlan0;IPv4;root\064LibreELEC\058\032Dummy\032Output;_pulse-sink._tcp;local -+;eth0;IPv4;root\064LibreELEC\058\032Dummy\032Output;_pulse-sink._tcp;local -+;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc-h._tcp;local -+;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc-h._tcp;local -+;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc._tcp;local -+;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc._tcp;local -+;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-events._udp;local -+;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-events._udp;local -=;eth0;IPv4;readynas\032\040CIFS\041;_smb._tcp;local;readynas.local;192.168.1.173;445; -=;eth0;IPv4;LIBREELEC;_smb._tcp;local;LibreELEC.local;192.168.1.227;445; -=;qtap9;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::d45b:7aff:febb:d70b;445; -=;qtap8;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::60c4:7cff:fe35:7db1;445; -=;qtap7;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::4808:95ff:fee8:18df;445; -=;qtap6;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::58b2:55ff:fef6:afe7;445; -=;qtap5;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::707d:c6ff:fed8:9764;445; -=;qtap4;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::e861:b6ff:fe68:660;445; -=;qtap3;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::6c2c:b6ff:febf:fbc5;445; -=;qtap2;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::75:b3ff:fe11:4083;445; -=;qtap1;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::a0be:ccff:fec2:fb34;445; -=;qtap0;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::b4ca:54ff:fe5e:e0b4;445; -=;br0;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::e018:99ff:fe36:51c7;445; -=;virbr0;IPv6;GIMLI;_smb._tcp;local;gimli.local;2001:db8::1;445; -=;wlan0;IPv6;GIMLI;_smb._tcp;local;gimli.local;2001:9b0:214:3500::522;445; -=;eth0;IPv6;GIMLI;_smb._tcp;local;gimli.local;2001:9b0:214:3500::522;445; -=;eth0;IPv6;LUTHIEN;_smb._tcp;local;luthien.local;2001:9b0:214:3500::c2e;445; -=;wlan0;IPv6;LUTHIEN;_smb._tcp;local;luthien.local;2001:9b0:214:3500::c2e;445; -=;qtap8;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;eth0;IPv6;LUTHIEN;_device-info._tcp;local;luthien.local;2001:9b0:214:3500::650;0;"model=MacSamba" -=;wlan0;IPv6;LUTHIEN;_device-info._tcp;local;luthien.local;2001:9b0:214:3500::650;0;"model=MacSamba" -=;qtap9;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::d45b:7aff:febb:d70b;0;"model=MacSamba" -=;qtap8;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::60c4:7cff:fe35:7db1;0;"model=MacSamba" -=;qtap7;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::4808:95ff:fee8:18df;0;"model=MacSamba" -=;qtap6;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::58b2:55ff:fef6:afe7;0;"model=MacSamba" -=;qtap5;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::707d:c6ff:fed8:9764;0;"model=MacSamba" -=;qtap4;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::e861:b6ff:fe68:660;0;"model=MacSamba" -=;qtap3;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::6c2c:b6ff:febf:fbc5;0;"model=MacSamba" -=;qtap2;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::75:b3ff:fe11:4083;0;"model=MacSamba" -=;qtap1;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::a0be:ccff:fec2:fb34;0;"model=MacSamba" -=;qtap0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::b4ca:54ff:fe5e:e0b4;0;"model=MacSamba" -=;br0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::e018:99ff:fe36:51c7;0;"model=MacSamba" -=;virbr0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;2001:db8::1;0;"model=MacSamba" -=;wlan0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;2001:9b0:214:3500::e19;0;"model=MacSamba" -=;eth0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;2001:9b0:214:3500::e19;0;"model=MacSamba" -=;eth0;IPv4;LUTHIEN;_smb._tcp;local;luthien.local;192.168.1.234;445; -=;eth2;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.2.1;445; -=;lxcbr0;IPv4;GIMLI;_smb._tcp;local;gimli.local;10.0.3.1;445; -=;virbr0;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.122.1;445; -=;wlan0;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.1.236;445; -=;wlan0;IPv4;readynas\032\040CIFS\041;_smb._tcp;local;readynas.local;192.168.1.173;445; -=;wlan0;IPv4;LIBREELEC;_smb._tcp;local;LibreELEC.local;192.168.1.227;445; -=;wlan0;IPv4;LUTHIEN;_smb._tcp;local;luthien.local;192.168.1.234;445; -=;eth0;IPv4;LUTHIEN;_device-info._tcp;local;luthien.local;192.168.1.132;0;"model=MacSamba" -=;eth0;IPv4;LIBREELEC;_device-info._tcp;local;LibreELEC.local;192.168.1.227;0;"model=Xserve" -=;wlan0;IPv4;LUTHIEN;_device-info._tcp;local;luthien.local;192.168.1.132;0;"model=MacSamba" -=;qtap9;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;wlan0;IPv4;LIBREELEC;_device-info._tcp;local;LibreELEC.local;192.168.1.227;0;"model=Xserve" -=;eth0;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.1.131;445; -=;eth0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.1.131;0;"model=MacSamba" -=;lo;IPv4;GIMLI;_device-info._tcp;local;gimli.local;127.0.0.1;0;"model=MacSamba" -=;lo;IPv4;GIMLI;_smb._tcp;local;gimli.local;127.0.0.1;445; -=;eth2;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.2.1;0;"model=MacSamba" -=;lxcbr0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;10.0.3.1;0;"model=MacSamba" -=;virbr0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.122.1;0;"model=MacSamba" -=;wlan0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.1.236;0;"model=MacSamba" -=;qtap2;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap2;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap2;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;Secure\032shell\032command\032line\032interface\032\040CLI\041;_ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap9;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap9;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap9;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap9;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap8;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap8;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap8;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap8;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;NETCONF\032\040XML\047SSH\041;_netconf-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;830;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;Secure\032file\032transfer\032\040FTP\047SSH\041;_sftp-ssh._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;22;"product=Infix v24.02.0-96-gc1770c40-dirty" -=;eth0;IPv4;LibreELEC;_sftp-ssh._tcp;local;LibreELEC.local;192.168.1.227;22; -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;80;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local;NPIC9167E.local;192.168.1.172;80;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;qtap2;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap2;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap2;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:2;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap1;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:1;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap0;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:0;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;Web\032Management\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;443;"adminurl=https://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;Web\032Console\032Interface;_https._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;443;"adminurl=https//infix-00-00-00.local/console" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap3;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:3;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap9;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:9;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap8;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:8;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap7;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:7;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap6;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:6;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap5;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:5;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;qtap4;IPv6;Web\032Management\032Interface;_http._tcp;local;infix-00-00-00.local;fe80::ff:fe00:4;80;"adminurl=http://infix-00-00-00.local" "product=Infix v24.02.0-96-gc1770c40-dirty" -=;wlan0;IPv4;LibreELEC;_sftp-ssh._tcp;local;LibreELEC.local;192.168.1.227;22; -=;wlan0;IPv4;Itunes\032Server\032on\032readynas;_http._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;wlan0;IPv4;FrontView\032on\032readynas;_http._tcp;local;readynas.local;192.168.1.173;80;"path=/admin/" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;80;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http._tcp;local;NPIC9167E.local;192.168.1.172;80;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;Itunes\032Server\032on\032readynas;_http._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;eth0;IPv4;FrontView\032on\032readynas;_http._tcp;local;readynas.local;192.168.1.173;80;"path=/admin/" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;515;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=50" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "rp=RAW" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local;NPIC9167E.local;192.168.1.172;515;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=50" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "rp=RAW" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;515;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=50" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "rp=RAW" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_printer._tcp;local;NPIC9167E.local;192.168.1.172;515;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=50" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "rp=RAW" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;9100;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=40" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local;NPIC9167E.local;192.168.1.172;9100;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=40" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;9100;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=40" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_pdl-datastream._tcp;local;NPIC9167E.local;192.168.1.172;9100;"TBCP=T" "Binary=T" "Transparent=T" "note=" "adminurl=http://NPIC9167E.local." "priority=40" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "qtotal=1" "txtvers=1" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;443;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=https://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local;NPIC9167E.local;192.168.1.172;443;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=https://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;443;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=https://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipps._tcp;local;NPIC9167E.local;192.168.1.172;443;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=https://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;631;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=http://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local;NPIC9167E.local;192.168.1.172;631;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=http://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;631;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=http://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_ipp._tcp;local;NPIC9167E.local;192.168.1.172;631;"mopria_certified=1.2" "mac=48:0f:cf:c9:16:7e" "usb_MDL=HP Color LaserJet Pro M252dw" "usb_MFG=Hewlett-Packard" "TLS=1.2" "PaperMax=legal-A4" "kind=document,envelope,photo" "UUID=564e4333-4e30-3439-3539-480fcfc9167e" "Fax=F" "Scan=F" "Duplex=T" "Color=T" "note=" "adminurl=http://NPIC9167E.local./hp/device/info_config_AirPrint.html?tab=Networking&menu=AirPrintStatus" "priority=10" "product=(HP Color LaserJet Pro M252dw)" "ty=HP Color LaserJet Pro M252dw" "URF=V1.4,CP99,W8,OB10,PQ3-4-5,ADOBERGB24,DEVRGB24,DEVW8,SRGB24,DM1,IS1,MT1-2-3-5-12,RS600" "rp=ipp/print" "pdl=image/urf,application/pdf,application/postscript,application/vnd.hp-PCL,application/vnd.hp-PCLXL,application/PCLm,application/octet-stream,image/jpeg" "qtotal=1" "txtvers=1" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local;NPIC9167E.local;192.168.1.172;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_print-caps._tcp;local;NPIC9167E.local;192.168.1.172;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local;NPIC9167E.local;192.168.1.172;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv6;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local;NPIC9167E.local;fdd5:659a:93ce::341;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;eth0;IPv4;HP\032Color\032LaserJet\032Pro\032M252dw\032\040C9167E\041;_http-alt._tcp;local;NPIC9167E.local;192.168.1.172;8080;"UUID=564e4333-4e30-3439-3539-480fcfc9167e" -=;wlan0;IPv6;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local;Living-Room.local;192.168.1.197;49154;"dn=DefaultDomain" "bb=\240\191" "sq=T" "pt=;7\180\009" "at=\000\000e[\145\147\000\000" "sb=\000\000\001\177" "dd=>\136\000_\219{\217\216" "xa=>\136\000_\219{\217\216" "tv=1.3.0" "xp=\194\229\194\014\243\175Jl" "nn=MyHome1433094499" "mn=BorderRouter" "vn=Apple Inc." "rv=1" -=;eth0;IPv4;Kodi\032\040LibreELEC\041;_http._tcp;local;LibreELEC.local;192.168.1.227;8080;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;wlan0;IPv4;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local;Living-Room.local;192.168.1.197;49154;"dn=DefaultDomain" "bb=\240\191" "sq=T" "pt=;7\180\009" "at=\000\000e[\145\147\000\000" "sb=\000\000\001\177" "dd=>\136\000_\219{\217\216" "xa=>\136\000_\219{\217\216" "tv=1.3.0" "xp=\194\229\194\014\243\175Jl" "nn=MyHome1433094499" "mn=BorderRouter" "vn=Apple Inc." "rv=1" -=;eth0;IPv6;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local;Living-Room.local;192.168.1.197;49154;"dn=DefaultDomain" "bb=\240\191" "sq=T" "pt=;7\180\009" "at=\000\000e[\145\147\000\000" "sb=\000\000\001\177" "dd=>\136\000_\219{\217\216" "xa=>\136\000_\219{\217\216" "tv=1.3.0" "xp=\194\229\194\014\243\175Jl" "nn=MyHome1433094499" "mn=BorderRouter" "vn=Apple Inc." "rv=1" -=;eth0;IPv4;Apple\032BorderRouter\032\035D9D8;_meshcop._udp;local;Living-Room.local;192.168.1.197;49154;"dn=DefaultDomain" "bb=\240\191" "sq=T" "pt=;7\180\009" "at=\000\000e[\145\147\000\000" "sb=\000\000\001\177" "dd=>\136\000_\219{\217\216" "xa=>\136\000_\219{\217\216" "tv=1.3.0" "xp=\194\229\194\014\243\175Jl" "nn=MyHome1433094499" "mn=BorderRouter" "vn=Apple Inc." "rv=1" -=;wlan0;IPv6;3e88005fdb7bd9d8;_trel._udp;local;Living-Room.local;192.168.1.197;51426;"xp=\194\229\194\014\243\175Jl" "xa=>\136\000_\219{\217\216" -=;wlan0;IPv4;3e88005fdb7bd9d8;_trel._udp;local;Living-Room.local;192.168.1.197;51426;"xp=\194\229\194\014\243\175Jl" "xa=>\136\000_\219{\217\216" -=;eth0;IPv6;3e88005fdb7bd9d8;_trel._udp;local;Living-Room.local;192.168.1.197;51426;"xp=\194\229\194\014\243\175Jl" "xa=>\136\000_\219{\217\216" -=;eth0;IPv4;3e88005fdb7bd9d8;_trel._udp;local;Living-Room.local;192.168.1.197;51426;"xp=\194\229\194\014\243\175Jl" "xa=>\136\000_\219{\217\216" -=;wlan0;IPv6;Living\032Room;_srpl-tls._tcp;local;Living-Room.local;192.168.1.197;853;"xpanid=c2e5c20ef3af4a6c" "did=5c2101b3d88c4acf" "pid=a3c93bc433606826" "dn=openthread.thread.home.arpa." -=;wlan0;IPv4;Living\032Room;_srpl-tls._tcp;local;Living-Room.local;192.168.1.197;853;"xpanid=c2e5c20ef3af4a6c" "did=5c2101b3d88c4acf" "pid=a3c93bc433606826" "dn=openthread.thread.home.arpa." -=;eth0;IPv6;Living\032Room;_srpl-tls._tcp;local;Living-Room.local;192.168.1.197;853;"xpanid=c2e5c20ef3af4a6c" "did=5c2101b3d88c4acf" "pid=a3c93bc433606826" "dn=openthread.thread.home.arpa." -=;eth0;IPv4;Living\032Room;_srpl-tls._tcp;local;Living-Room.local;192.168.1.197;853;"xpanid=c2e5c20ef3af4a6c" "did=5c2101b3d88c4acf" "pid=a3c93bc433606826" "dn=openthread.thread.home.arpa." -=;wlan0;IPv6;1CB3C90F49FD\064Living\032Room;_raop._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "ov=17.4" "vs=760.20.1" "vn=65537" "tp=UDP" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "am=AppleTV11,1" "md=0,1,2" "sf=0x644" "ft=0x4A7FDFD5,0xBC177FDE" "et=0,3,5" "da=true" "cn=0,1,2,3" -=;wlan0;IPv4;1CB3C90F49FD\064Living\032Room;_raop._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "ov=17.4" "vs=760.20.1" "vn=65537" "tp=UDP" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "am=AppleTV11,1" "md=0,1,2" "sf=0x644" "ft=0x4A7FDFD5,0xBC177FDE" "et=0,3,5" "da=true" "cn=0,1,2,3" -=;eth0;IPv6;1CB3C90F49FD\064Living\032Room;_raop._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "ov=17.4" "vs=760.20.1" "vn=65537" "tp=UDP" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "am=AppleTV11,1" "md=0,1,2" "sf=0x644" "ft=0x4A7FDFD5,0xBC177FDE" "et=0,3,5" "da=true" "cn=0,1,2,3" -=;eth0;IPv4;1CB3C90F49FD\064Living\032Room;_raop._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "ov=17.4" "vs=760.20.1" "vn=65537" "tp=UDP" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "am=AppleTV11,1" "md=0,1,2" "sf=0x644" "ft=0x4A7FDFD5,0xBC177FDE" "et=0,3,5" "da=true" "cn=0,1,2,3" -=;wlan0;IPv6;Living\032Room;_airplay._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "osvers=17.4" "srcvers=760.20.1" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "psi=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "pi=ff37ee9c-0677-4ee4-a2c3-7cc3071c42c7" "protovers=1.1" "model=AppleTV11,1" "gcgl=1" "igl=1" "gid=8AB8C139-61B6-404C-BBE5-151E2601E356" "flags=0x644" "features=0x4A7FDFD5,0xBC177FDE" "fex=1d9/St5/F7w4oQY" "deviceid=1C:B3:C9:0F:49:FD" "btaddr=00:00:00:00:00:00" "acl=0" -=;wlan0;IPv4;Living\032Room;_airplay._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "osvers=17.4" "srcvers=760.20.1" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "psi=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "pi=ff37ee9c-0677-4ee4-a2c3-7cc3071c42c7" "protovers=1.1" "model=AppleTV11,1" "gcgl=1" "igl=1" "gid=8AB8C139-61B6-404C-BBE5-151E2601E356" "flags=0x644" "features=0x4A7FDFD5,0xBC177FDE" "fex=1d9/St5/F7w4oQY" "deviceid=1C:B3:C9:0F:49:FD" "btaddr=00:00:00:00:00:00" "acl=0" -=;eth0;IPv6;Living\032Room;_airplay._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "osvers=17.4" "srcvers=760.20.1" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "psi=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "pi=ff37ee9c-0677-4ee4-a2c3-7cc3071c42c7" "protovers=1.1" "model=AppleTV11,1" "gcgl=1" "igl=1" "gid=8AB8C139-61B6-404C-BBE5-151E2601E356" "flags=0x644" "features=0x4A7FDFD5,0xBC177FDE" "fex=1d9/St5/F7w4oQY" "deviceid=1C:B3:C9:0F:49:FD" "btaddr=00:00:00:00:00:00" "acl=0" -=;eth0;IPv4;Living\032Room;_airplay._tcp;local;Living-Room.local;192.168.1.197;7000;"vv=1" "osvers=17.4" "srcvers=760.20.1" "pk=dcd3a159312bf6ba5369680a5642e919ef6a4b1549584e6e6f2d234fa4d6890d" "psi=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "pi=ff37ee9c-0677-4ee4-a2c3-7cc3071c42c7" "protovers=1.1" "model=AppleTV11,1" "gcgl=1" "igl=1" "gid=8AB8C139-61B6-404C-BBE5-151E2601E356" "flags=0x644" "features=0x4A7FDFD5,0xBC177FDE" "fex=1d9/St5/F7w4oQY" "deviceid=1C:B3:C9:0F:49:FD" "btaddr=00:00:00:00:00:00" "acl=0" -=;wlan0;IPv6;Living\032Room;_companion-link._tcp;local;Living-Room.local;192.168.1.197;49153;"rpMRtID=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "rpBA=57:46:6D:57:B4:50" "rpHI=d3660be33890" "rpAD=404149af4259" "rpVr=543.1" "rpMd=AppleTV11,1" "rpHA=1b4700ce1a10" "rpFl=0xB67A2" "rpHN=5c9257b8eae5" "rpMac=0" -=;wlan0;IPv4;Living\032Room;_companion-link._tcp;local;Living-Room.local;192.168.1.197;49153;"rpMRtID=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "rpBA=57:46:6D:57:B4:50" "rpHI=d3660be33890" "rpAD=404149af4259" "rpVr=543.1" "rpMd=AppleTV11,1" "rpHA=1b4700ce1a10" "rpFl=0xB67A2" "rpHN=5c9257b8eae5" "rpMac=0" -=;wlan0;IPv4;Kodi\032\040LibreELEC\041;_http._tcp;local;LibreELEC.local;192.168.1.227;8080;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;eth0;IPv6;Living\032Room;_companion-link._tcp;local;Living-Room.local;192.168.1.197;49153;"rpMRtID=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "rpBA=57:46:6D:57:B4:50" "rpHI=d3660be33890" "rpAD=404149af4259" "rpVr=543.1" "rpMd=AppleTV11,1" "rpHA=1b4700ce1a10" "rpFl=0xB67A2" "rpHN=5c9257b8eae5" "rpMac=0" -=;eth0;IPv4;Living\032Room;_companion-link._tcp;local;Living-Room.local;192.168.1.197;49153;"rpMRtID=74EBA0AF-DB0F-483F-A9E6-0B4EB6C82857" "rpBA=57:46:6D:57:B4:50" "rpHI=d3660be33890" "rpAD=404149af4259" "rpVr=543.1" "rpMd=AppleTV11,1" "rpHA=1b4700ce1a10" "rpFl=0xB67A2" "rpHN=5c9257b8eae5" "rpMac=0" -=;wlan0;IPv6;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local;Living-Room.local;192.168.1.197;50103; -=;wlan0;IPv4;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local;Living-Room.local;192.168.1.197;50103; -=;eth0;IPv6;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local;Living-Room.local;192.168.1.197;50103; -=;eth0;IPv4;70-35-60-63\.1\032Living\032Room;_sleep-proxy._udp;local;Living-Room.local;192.168.1.197;50103; -=;eth0;IPv4;ReadyNAS\032Discovery\032\091readynas\093;_readynas._tcp;local;readynas.local;192.168.1.173;9;"raid=X-RAID2" "channels=4" "serial=2DK61B0G00662" "model=ReadyNAS Ultra 4" "vendor=NETGEAR" -=;eth0;IPv4;B827EBAE1BA7\064Kodi\032\040LibreELEC\041;_raop._tcp;local;LibreELEC.local;192.168.1.227;36666;"vs=130.14" "am=Kodi,1" "md=0,1,2" "da=true" "vn=3" "pw=false" "sr=44100" "ss=16" "sm=false" "tp=UDP" "sv=false" "et=0,1" "ek=1" "ch=2" "cn=0,1" "txtvers=1" -=;wlan0;IPv4;ReadyNAS\032Discovery\032\091readynas\093;_readynas._tcp;local;readynas.local;192.168.1.173;9;"raid=X-RAID2" "channels=4" "serial=2DK61B0G00662" "model=ReadyNAS Ultra 4" "vendor=NETGEAR" -=;wlan0;IPv4;B827EBAE1BA7\064Kodi\032\040LibreELEC\041;_raop._tcp;local;LibreELEC.local;192.168.1.227;36666;"vs=130.14" "am=Kodi,1" "md=0,1,2" "da=true" "vn=3" "pw=false" "sr=44100" "ss=16" "sm=false" "tp=UDP" "sv=false" "et=0,1" "ek=1" "ch=2" "cn=0,1" "txtvers=1" -=;eth0;IPv4;Itunes\032Server\032on\032readynas;_daap._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;eth0;IPv4;Itunes\032Server\032on\032readynas;_rsp._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;eth0;IPv4;readynas\032\091a0\05821\058b7\058c1\0588c\0583a\093;_workstation._tcp;local;readynas.local;192.168.1.173;9; -=;eth0;IPv4;root\064LibreELEC;_pulse-server._tcp;local;LibreELEC.local;192.168.1.227;4713;"cookie=0xcaa87808" "fqdn=LibreELEC" "uname=Linux armv7l 4.19.127 #1 SMP Tue Jul 6 19:08:28 CEST 2021" "machine-id=0591ddc66796df8c2bb9bd455b2cd975" "user-name=root" "server-version=pulseaudio 12.2" -=;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-events._udp;local;LibreELEC.local;192.168.1.227;9777; -=;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc._tcp;local;LibreELEC.local;192.168.1.227;9090;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;eth0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc-h._tcp;local;LibreELEC.local;192.168.1.227;8080;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;eth0;IPv4;root\064LibreELEC\058\032Dummy\032Output;_pulse-sink._tcp;local;LibreELEC.local;192.168.1.227;4713;"icon-name=computer" "class=abstract" "description=Dummy Output" "subtype=virtual" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=44100" "device=auto_null" "cookie=0xcaa87808" "fqdn=LibreELEC" "uname=Linux armv7l 4.19.127 #1 SMP Tue Jul 6 19:08:28 CEST 2021" "machine-id=0591ddc66796df8c2bb9bd455b2cd975" "user-name=root" "server-version=pulseaudio 12.2" -=;wlan0;IPv4;Itunes\032Server\032on\032readynas;_daap._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;wlan0;IPv4;Itunes\032Server\032on\032readynas;_rsp._tcp;local;readynas.local;192.168.1.173;3689;"ffid=7e725542" "Password=false" "Version=196610" "iTSh Version=131073" "mtd-version=svn-1676" "Machine Name=Itunes Server" "Machine ID=6C37BA14" "Database ID=6C37BA14" "txtvers=1" -=;wlan0;IPv4;readynas\032\091a0\05821\058b7\058c1\0588c\0583a\093;_workstation._tcp;local;readynas.local;192.168.1.173;9; -=;wlan0;IPv4;root\064LibreELEC;_pulse-server._tcp;local;LibreELEC.local;192.168.1.227;4713;"cookie=0xcaa87808" "fqdn=LibreELEC" "uname=Linux armv7l 4.19.127 #1 SMP Tue Jul 6 19:08:28 CEST 2021" "machine-id=0591ddc66796df8c2bb9bd455b2cd975" "user-name=root" "server-version=pulseaudio 12.2" -=;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-events._udp;local;LibreELEC.local;192.168.1.227;9777; -=;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc._tcp;local;LibreELEC.local;192.168.1.227;9090;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;wlan0;IPv4;Kodi\032\040LibreELEC\041;_xbmc-jsonrpc-h._tcp;local;LibreELEC.local;192.168.1.227;8080;"uuid=58c530ac-0bb0-4f99-bbc6-c9d81639c72d" "txtvers=1" -=;wlan0;IPv4;root\064LibreELEC\058\032Dummy\032Output;_pulse-sink._tcp;local;LibreELEC.local;192.168.1.227;4713;"icon-name=computer" "class=abstract" "description=Dummy Output" "subtype=virtual" "channel_map=front-left,front-right" "format=s16le" "channels=2" "rate=44100" "device=auto_null" "cookie=0xcaa87808" "fqdn=LibreELEC" "uname=Linux armv7l 4.19.127 #1 SMP Tue Jul 6 19:08:28 CEST 2021" "machine-id=0591ddc66796df8c2bb9bd455b2cd975" "user-name=root" "server-version=pulseaudio 12.2" -Failed to resolve service 'firefly [74:da:38:6e:5e:2a]' of type '_workstation._tcp' in domain 'local': Timeout reached -Failed to resolve service 'firefly [74:da:38:6e:5e:2a]' of type '_workstation._tcp' in domain 'local': Timeout reached -``` - - -Office LAN ----------- - -``` -$ avahi-browse -tarpk -+;eth2;IPv4;GIMLI;_device-info._tcp;local -+;br0;IPv6;GIMLI;_device-info._tcp;local -+;lxcbr0;IPv4;GIMLI;_device-info._tcp;local -+;virbr0;IPv6;GIMLI;_device-info._tcp;local -+;virbr0;IPv4;GIMLI;_device-info._tcp;local -+;wlan0;IPv6;GIMLI;_device-info._tcp;local -+;wlan0;IPv4;GIMLI;_device-info._tcp;local -+;eth0;IPv6;GIMLI;_device-info._tcp;local -+;eth0;IPv4;GIMLI;_device-info._tcp;local -+;lo;IPv4;GIMLI;_device-info._tcp;local -+;eth2;IPv4;GIMLI;_smb._tcp;local -+;br0;IPv6;GIMLI;_smb._tcp;local -+;lxcbr0;IPv4;GIMLI;_smb._tcp;local -+;virbr0;IPv6;GIMLI;_smb._tcp;local -+;virbr0;IPv4;GIMLI;_smb._tcp;local -+;wlan0;IPv6;GIMLI;_smb._tcp;local -+;wlan0;IPv4;GIMLI;_smb._tcp;local -+;eth0;IPv6;GIMLI;_smb._tcp;local -+;eth0;IPv4;GIMLI;_smb._tcp;local -+;lo;IPv4;GIMLI;_smb._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_uscan._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_uscan._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_http._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_http._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_scanner._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_scanner._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_ipp._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_ipp._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_printer._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_printer._tcp;local -+;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_pdl-datastream._tcp;local -+;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_pdl-datastream._tcp;local -=;br0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::e018:99ff:fe36:51c7;0;"model=MacSamba" -=;br0;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::e018:99ff:fe36:51c7;445; -=;virbr0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;2001:db8::1;0;"model=MacSamba" -=;virbr0;IPv6;GIMLI;_smb._tcp;local;gimli.local;2001:db8::1;445; -=;wlan0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::fc94:34d5:b4d3:69e5;0;"model=MacSamba" -=;wlan0;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::fc94:34d5:b4d3:69e5;445; -=;eth0;IPv6;GIMLI;_device-info._tcp;local;gimli.local;fe80::fb59:6e2f:da3:975c;0;"model=MacSamba" -=;eth0;IPv6;GIMLI;_smb._tcp;local;gimli.local;fe80::fb59:6e2f:da3:975c;445; -=;eth2;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.2.1;0;"model=MacSamba" -=;eth2;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.2.1;445; -=;lxcbr0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;10.0.3.1;0;"model=MacSamba" -=;lxcbr0;IPv4;GIMLI;_smb._tcp;local;gimli.local;10.0.3.1;445; -=;virbr0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;192.168.122.1;0;"model=MacSamba" -=;virbr0;IPv4;GIMLI;_smb._tcp;local;gimli.local;192.168.122.1;445; -=;wlan0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;172.31.31.245;0;"model=MacSamba" -=;wlan0;IPv4;GIMLI;_smb._tcp;local;gimli.local;172.31.31.245;445; -=;eth0;IPv4;GIMLI;_device-info._tcp;local;gimli.local;172.31.21.164;0;"model=MacSamba" -=;eth0;IPv4;GIMLI;_smb._tcp;local;gimli.local;172.31.21.164;445; -=;lo;IPv4;GIMLI;_device-info._tcp;local;gimli.local;127.0.0.1;0;"model=MacSamba" -=;lo;IPv4;GIMLI;_smb._tcp;local;gimli.local;127.0.0.1;445; -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_pdl-datastream._tcp;local;BRNB42200415BAA.local;172.31.21.11;9100;"UUID=e3248000-80ce-11db-8000-b42200415baa" "TBCP=T" "Transparent=F" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=75" "adminurl=http://BRNB42200415BAA.local./" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_printer._tcp;local;BRNB42200415BAA.local;172.31.21.11;515;"UUID=e3248000-80ce-11db-8000-b42200415baa" "TBCP=F" "Transparent=T" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=50" "adminurl=http://BRNB42200415BAA.local./" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "rp=duerqxesz5090" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_ipp._tcp;local;BRNB42200415BAA.local;172.31.21.11;631;"mopria-certified=1.3" "print_wfds=T" "UUID=e3248000-80ce-11db-8000-b42200415baa" "PaperMax=legal-A4" "kind=document,envelope,label,postcard" "URF=SRGB24,W8,CP1,IS4-1,MT1-3-4-5-8-11,OB10,PQ4,RS600,V1.4,DM1" "TBCP=F" "Transparent=T" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=25" "adminurl=http://BRNB42200415BAA.local./net/net/airprint.html" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "rp=ipp/print" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_scanner._tcp;local;BRNB42200415BAA.local;172.31.21.11;54921;"flatbed=T" "feeder=T" "button=T" "mdl=DCP-L3550CDW series" "mfg=Brother" "ty=Brother DCP-L3550CDW series" "adminurl=http://BRNB42200415BAA.local./" "note=" "txtvers=1" -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_http._tcp;local;BRNB42200415BAA.local;172.31.21.11;80; -=;eth0;IPv6;Brother\032DCP-L3550CDW\032series;_uscan._tcp;local;BRNB42200415BAA.local;172.31.21.11;80;"duplex=F" "is=adf,platen" "cs=binary,grayscale,color" "UUID=e3248000-80ce-11db-8000-b42200415baa" "pdl=application/pdf,image/jpeg" "note=" "ty=Brother DCP-L3550CDW series" "rs=eSCL" "representation=http://BRNB42200415BAA.local./icons/device-icons-128.png" "adminurl=http://BRNB42200415BAA.local./net/net/airprint.html" "vers=2.63" "txtvers=1" -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_pdl-datastream._tcp;local;BRNB42200415BAA.local;172.31.21.11;9100;"UUID=e3248000-80ce-11db-8000-b42200415baa" "TBCP=T" "Transparent=F" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=75" "adminurl=http://BRNB42200415BAA.local./" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_printer._tcp;local;BRNB42200415BAA.local;172.31.21.11;515;"UUID=e3248000-80ce-11db-8000-b42200415baa" "TBCP=F" "Transparent=T" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=50" "adminurl=http://BRNB42200415BAA.local./" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "rp=duerqxesz5090" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_ipp._tcp;local;BRNB42200415BAA.local;172.31.21.11;631;"mopria-certified=1.3" "print_wfds=T" "UUID=e3248000-80ce-11db-8000-b42200415baa" "PaperMax=legal-A4" "kind=document,envelope,label,postcard" "URF=SRGB24,W8,CP1,IS4-1,MT1-3-4-5-8-11,OB10,PQ4,RS600,V1.4,DM1" "TBCP=F" "Transparent=T" "Binary=T" "PaperCustom=T" "Scan=T" "Fax=F" "Duplex=T" "Copies=T" "Color=T" "usb_CMD=PJL,PCL,PCLXL,URF" "usb_MDL=DCP-L3550CDW series" "usb_MFG=Brother" "priority=25" "adminurl=http://BRNB42200415BAA.local./net/net/airprint.html" "product=(Brother DCP-L3550CDW series)" "ty=Brother DCP-L3550CDW series" "note=" "rp=ipp/print" "pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster" "qtotal=1" "txtvers=1" -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_scanner._tcp;local;BRNB42200415BAA.local;172.31.21.11;54921;"flatbed=T" "feeder=T" "button=T" "mdl=DCP-L3550CDW series" "mfg=Brother" "ty=Brother DCP-L3550CDW series" "adminurl=http://BRNB42200415BAA.local./" "note=" "txtvers=1" -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_http._tcp;local;BRNB42200415BAA.local;172.31.21.11;80; -=;eth0;IPv4;Brother\032DCP-L3550CDW\032series;_uscan._tcp;local;BRNB42200415BAA.local;172.31.21.11;80;"duplex=F" "is=adf,platen" "cs=binary,grayscale,color" "UUID=e3248000-80ce-11db-8000-b42200415baa" "pdl=application/pdf,image/jpeg" "note=" "ty=Brother DCP-L3550CDW series" "rs=eSCL" "representation=http://BRNB42200415BAA.local./icons/device-icons-128.png" "adminurl=http://BRNB42200415BAA.local./net/net/airprint.html" "vers=2.63" "txtvers=1" -```