Skip to content
AdminKit

Using port check to inventory IoT and OT device exposure

AdminKit's port check tool tests nine commonly misconfigured TCP ports on the single public IP you're connecting from, and while it can't enumerate every device on your network at once, running it from each site or connection you operate and reading the result against a port-to-device fingerprint table turns a one-off exposure check into a running inventory of what's reachable from the internet, where, and whether that's changed since the last time you looked.

By AdminKit team, Netbase JSC · Updated October 31, 2026

What an inventory built on port check actually is

An asset inventory for IoT and OT exposure usually means knowing, for every site or network segment you’re responsible for, what’s reachable from the internet right now — not a single snapshot of one address. AdminKit’s port check tool tests nine specific TCP ports against the one public IP a request comes from, by design, and never a target you type in, which means building an inventory with it is a matter of repetition and record-keeping rather than one all-at-once scan: run it from each site, connection, or public IP you operate, and keep each result as a dated entry rather than treating a single check as a permanent fact. This fits environments like a chain of retail locations, a factory with more than one WAN connection, or an integrator managing several customer sites — anywhere “exposure” is really a question about several addresses, not one.

Turning an open port into a device fingerprint

Each of the nine ports this check covers maps to a recognizable device category, which is the basis of a usable fingerprint table rather than a flat list of yes/no results:

PortProtocolTypical deviceGuide
502Modbus TCPPLC, RTU, or other industrial controllerModbus TCP 502 remediation playbook
1883 / 8883MQTT / MQTTSIoT message brokeris port 1883 (MQTT) open?
554RTSPIP camera or video encoderis port 554 (RTSP) exposed?
23TelnetRouter, camera, or NAS admin shellis port 23 (Telnet) exposed?
7547TR-069/CWMPISP-managed router or ONTTR-069 port 7547 exposure, explained
80 / 443 / 8080HTTP(S) admin UIRouter, NVR, or other device with a web consoleis port 8080 (admin panel) exposed?

IANA’s port number registry is the authoritative reference for which protocol a given port is registered to, which is useful when an open port doesn’t match the usual device in your environment — a non-standard service squatting on a well-known port is itself worth investigating. Two protocols common in building and sensor networks, BACnet/IP (47808) and CoAP (5683), are UDP-based and not covered by this check yet; both have their own guides — BACnet/IP exposure and is port 5683 (CoAP) exposed? — with a manual command to check them in the meantime.

Building the inventory record

A minimal, workable inventory entry needs only a handful of fields per site or address: the public IP checked, the date, which of the nine ports came back open, the device type inferred from the fingerprint table above, and what action was taken (closed, moved behind a VPN, or deliberately left open with a documented reason). CISA’s Known Exploited Vulnerabilities Catalog is worth cross-referencing for any device type you find exposed, since several of the ports this check covers correspond to device families with a documented history of active exploitation once reachable from the internet.

What this process can’t tell you

Port check reports whether a TCP connection succeeded, not which internal device answers it — that mapping lives in your own router or firewall’s port-forwarding configuration, which only you have access to. It also can’t discover devices that aren’t port-forwarded to the internet at all, which is most of a typical IoT/OT network by design; this inventory specifically tracks internet-facing exposure, not a full asset list of everything on the LAN. Treat a clean result on all nine ports as confirmation that this specific exposure surface is closed today, not as a statement about the network’s overall security posture.

Next step

Run AdminKit’s open ports on my IP check from each site or connection in your inventory, starting with what is my IP to confirm the exact address being tested, and log each result against the fingerprint table above before moving to the next location.

This guide is general information, not a security audit of your specific network — see our disclaimer for what AdminKit's guidance does and does not commit to.

Frequently asked questions

Can port check scan every IoT device on my network in one pass?

No. It scans a fixed list of nine TCP ports against exactly one address: the public IP the request is coming from, determined server-side, with no field to type in another target. It can't enumerate internal device addresses behind your router, and AdminKit's Check API itself refuses a ports scan whose target isn't the caller's own IP. Building an inventory with it means running it once per public IP you operate (per site, per WAN connection) and treating each result as that location's current exposure snapshot, not a single scan of your whole fleet.

If port check shows one port open, how do I know which specific device is behind it?

The check tells you a port is open on your public address, not which internal device a router's port-forward rule sends that traffic to — only your own router or firewall's forwarding table can tell you that. What the open port does tell you, combined with which protocol commonly uses it, is the type of device worth looking for: port 502 open points you toward a Modbus-speaking PLC or RTU, port 1883 toward an MQTT broker, and so on. Cross-check against your router's port-forwarding rules to find the specific internal device.

Does this check cover every protocol an IoT or OT device might expose?

No — it currently probes nine TCP ports only: 23 (Telnet), 554 (RTSP), 1883/8883 (MQTT/MQTTS), 502 (Modbus), 7547 (TR-069), and 80/443/8080 (admin web UIs). BACnet/IP (47808) and CoAP (5683) are UDP-based and not covered by this tool yet — AdminKit's dedicated guides for those two ports include a manual nc or UDP probe command to check them separately until a dedicated check covers them.

How often should I re-run this for an inventory to stay useful?

There's no fixed interval that fits every environment, but an inventory is only as good as its last check: firmware updates, a new port-forward added for a one-off maintenance job, a swapped router, or a new device joining the network can all change what's exposed without anyone updating a spreadsheet. Re-checking on a fixed cadence (monthly is a reasonable default for most small sites) and after any known network change catches drift that a single, never-repeated scan can't.

My public IP changed since the last check — does my inventory still apply?

Not necessarily to the same address. A dynamic IP or one behind Carrier-Grade NAT can change or be shared with other customers between checks, so a result tied to an old address may no longer describe your current exposure at all — see what is CGNAT for how to tell whether your address is shared, and confirm your current public IP with AdminKit's my IP tool before treating an older inventory entry as still accurate.

Want AdminKit to watch this for you?

Free checks tell you the state today. Protective DNS and monitoring tell you when it changes.

Huy Nguyen (David), Founder and CEO of Netbase JSC

Talk to an expert

Huy Nguyen (David), Founder & CEO, Netbase JSC

Ask whether this fix applies to your setup, or get a second pair of eyes on your DNS and mail records.