portFrom int Lowest port number to include (inclusive). Must be ≤ portTo when both are given.
Look up which service IANA registered for a TCP/UDP port, or search services by name — the complete registry for ports 0-49151, verbatim with every reference.
Authoritative reference data or standards computation
Every filter genuinely narrows the rows; combined filters are ANDed. Results stay in registry order (ascending port), and count caps them — on this route it defaults to 20, not to all matches. No match returns an empty list plus a warning, never a substituted row; when the window falls inside a port-range row the warning names the block. A range assignment (assignedRange set) matches a port window whenever the window overlaps its span.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
portFrom | int | allowed: 0 – 65535 example: 8000 | Lowest port number to include (inclusive). Must be ≤ portTo when both are given. |
portTo | int | allowed: 0 – 65535 example: 8999 | Highest port number to include (inclusive). |
protocol | enum | allowed: tcp | udp | sctp | dccp example: tcp | Keep only registrations for this transport protocol. Rows the registry leaves without a protocol never match. |
service | string | allowed: 1 – 64 example: mysql | Exact registered service name, matched case-insensitively (`XmlIpcRegSvc` = `xmlipcregsvc`). Use `search` for partial matches. |
search | string | allowed: 1 – 64 example: database | Case-insensitive substring match against the service name and the registry description. Does not search notes or references. |
range | enum | allowed: system | registered example: system | `system` = the Well Known Ports 0-1023; `registered` = the User Ports 1024-49151 (RFC 6335 §6). Both ranges ship complete. |
portFrom int Lowest port number to include (inclusive). Must be ≤ portTo when both are given.
portTo int Highest port number to include (inclusive).
protocol enum Keep only registrations for this transport protocol. Rows the registry leaves without a protocol never match.
service string Exact registered service name, matched case-insensitively (`XmlIpcRegSvc` = `xmlipcregsvc`). Use `search` for partial matches.
search string Case-insensitive substring match against the service name and the registry description. Does not search notes or references.
range enum `system` = the Well Known Ports 0-1023; `registered` = the User Ports 1024-49151 (RFC 6335 §6). Both ranges ship complete.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
count | int | default: 20 allowed: 1 – 100 example: 3 | Limit the number of returned records (1–100). Defaults to 20. |
fields | list | example: port,protocol | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: unauthorizedUse | Return all fields except these (comma-separated). |
format | enum | default: json allowed: json | ndjson | csv example: csv | Response format: json envelope, ndjson (one record per line) or csv. |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
count int Limit the number of returned records (1–100). Defaults to 20.
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
format enum Response format: json envelope, ndjson (one record per line) or csv.
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
port | integer (0-65535) | Assigned port number. For the eight rows IANA publishes as a port RANGE rather than a single port, this is the first port of the span and `assignedRange` states the span. | 22 |
protocol nullable | string | Transport protocol of this registration: tcp, udp, sctp or dccp. Null when the registry row carries no protocol (some Unassigned/De-registered single ports). | tcp |
serviceName nullable | string | IANA service name, exactly as registered. Null wherever the registry publishes no name: mostly Reserved and Unassigned rows, but also the legacy `any private …` entries (24, 35, 57, 59, 75, 77, 87), De-registered/Removed rows and the odd anecdotal one (1008, "Possibly used by Sun Solaris????"). Pre-RFC-6335 names may contain characters RFC 6335 §5.1 now forbids (`mdbs_daemon`, `sql*net`). | ssh |
description nullable | string | The registry's Description cell, copied verbatim — terse, occasionally stale and sometimes duplicated across rows. Null when the cell is blank. | The Secure Shell (SSH) Protocol |
registrationDate nullable | string (YYYY-MM or YYYY-MM-DD) | Date IANA records for the assignment, in whichever precision the registry publishes. Null for the many older rows that carry none, and for every port-range row (the registry dates none of them). | 2015-04-23 |
reference nullable | string | The row's own Reference cell in IANA's bracketed form, e.g. `[RFC4251]` or `[RFC3501][RFC8314][RFC9051]`. Null when the registry cites nothing. | [RFC4251] |
range | string | `system` for 0-1023 (Well Known Ports) or `registered` for 1024-49151 (User Ports), per RFC 6335 §6. | system |
assignedRange nullable | string (from-to) | Null for the per-port rows that make up all but eight registrations. The exceptions are the spans IANA assigns as one row — `x11` on `6000-6063`, `flex-lm` on `27000-27009`, `swx` on `7300-7359`, `vrml-multi-use` on `4200-4299`, `ircu` on `6665-6669`, `active-net` on `3322-3325`, `satvid-datalnk` on `3367-3371` — where this states the span instead of us inventing a row per port. | null |
note nullable | string | The registry's Assignment Notes cell verbatim — de-assignment history, replacement names and DNS-SD guidance. Null when empty. | Defined TXT keys: u=<username> p=<password> |
unauthorizedUse nullable | string | The registry's own Unauthorized Use Reported cell verbatim: IANA's note that software squats on this port. Null when IANA reports none — it is not a claim about what is actually running. | PORT 90 also being used unofficially by Pointcast |
port integer (0-65535) Assigned port number. For the eight rows IANA publishes as a port RANGE rather than a single port, this is the first port of the span and `assignedRange` states the span.
example: 22
protocol string nullable Transport protocol of this registration: tcp, udp, sctp or dccp. Null when the registry row carries no protocol (some Unassigned/De-registered single ports).
example: tcp
serviceName string nullable IANA service name, exactly as registered. Null wherever the registry publishes no name: mostly Reserved and Unassigned rows, but also the legacy `any private …` entries (24, 35, 57, 59, 75, 77, 87), De-registered/Removed rows and the odd anecdotal one (1008, "Possibly used by Sun Solaris????"). Pre-RFC-6335 names may contain characters RFC 6335 §5.1 now forbids (`mdbs_daemon`, `sql*net`).
example: ssh
description string nullable The registry's Description cell, copied verbatim — terse, occasionally stale and sometimes duplicated across rows. Null when the cell is blank.
example: The Secure Shell (SSH) Protocol
registrationDate string (YYYY-MM or YYYY-MM-DD) nullable Date IANA records for the assignment, in whichever precision the registry publishes. Null for the many older rows that carry none, and for every port-range row (the registry dates none of them).
example: 2015-04-23
reference string nullable The row's own Reference cell in IANA's bracketed form, e.g. `[RFC4251]` or `[RFC3501][RFC8314][RFC9051]`. Null when the registry cites nothing.
example: [RFC4251]
range string `system` for 0-1023 (Well Known Ports) or `registered` for 1024-49151 (User Ports), per RFC 6335 §6.
example: system
assignedRange string (from-to) nullable Null for the per-port rows that make up all but eight registrations. The exceptions are the spans IANA assigns as one row — `x11` on `6000-6063`, `flex-lm` on `27000-27009`, `swx` on `7300-7359`, `vrml-multi-use` on `4200-4299`, `ircu` on `6665-6669`, `active-net` on `3322-3325`, `satvid-datalnk` on `3367-3371` — where this states the span instead of us inventing a row per port.
example: null
note string nullable The registry's Assignment Notes cell verbatim — de-assignment history, replacement names and DNS-SD guidance. Null when empty.
example: Defined TXT keys: u=<username> p=<password>
unauthorizedUse string nullable The registry's own Unauthorized Use Reported cell verbatim: IANA's note that software squats on this port. Null when IANA reports none — it is not a claim about what is actually running.
example: PORT 90 also being used unofficially by Pointcast
/api/ports?portFrom=8080&portTo=8080 {
"data": [
{
"port": 8080,
"protocol": "tcp",
"serviceName": "http-alt",
"description": "HTTP Alternate (see port 80)",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 8080,
"protocol": "udp",
"serviceName": "http-alt",
"description": "HTTP Alternate (see port 80)",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
}
],
"meta": {
"endpoint": "ports",
"count": 2,
"params": {
"portFrom": 8080,
"portTo": 8080
},
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports?service=redis {
"data": [
{
"port": 6379,
"protocol": "tcp",
"serviceName": "redis",
"description": "An advanced key-value cache and store",
"registrationDate": "2015-04-23",
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
}
],
"meta": {
"endpoint": "ports",
"count": 1,
"params": {
"service": "redis"
},
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports?range=registered&search=database&count=50 {
"data": [
{
"port": 1201,
"protocol": "tcp",
"serviceName": "nucleus-sand",
"description": "Nucleus Sand Database Server",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 1201,
"protocol": "udp",
"serviceName": "nucleus-sand",
"description": "Nucleus Sand Database Server",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 1388,
"protocol": "tcp",
"serviceName": "objective-dbc",
"description": "Objective Solutions DataBase Cache",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 1388,
…
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports?range=system&protocol=sctp&count=30 {
"data": [
{
"port": 9,
"protocol": "sctp",
"serviceName": "discard",
"description": "Discard",
"registrationDate": null,
"reference": "[RFC9260]",
"range": "system",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 20,
"protocol": "sctp",
"serviceName": "ftp-data",
"description": "FTP",
"registrationDate": null,
"reference": "[RFC9260]",
"range": "system",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
},
{
"port": 21,
"protocol": "sctp",
"serviceName": "ftp",
"description": "FTP",
"registrationDate": null,
"reference": "[RFC9260]",
"range": "system",
"assignedRange": null,
"note": "Defined TXT keys: u=<username> p=<password> path=<path>",
"unauthorizedUse": null
},
{
"port": 22,
…
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports?portFrom=0&portTo=60&count=100&format=csv port,protocol,serviceName,description,registrationDate,reference,range,assignedRange,note,unauthorizedUse
0,tcp,,Reserved,,[RFC6335],system,,,
0,udp,,Reserved,,[RFC6335],system,,,
1,tcp,tcpmux,TCP Port Service Multiplexer,,,system,,,
1,udp,tcpmux,TCP Port Service Multiplexer,,,system,,,
2,tcp,,Reserved,,,system,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]",
2,udp,,Reserved,,,system,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]",
3,tcp,,Reserved,,,system,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]",
3,udp,,Reserved,,,system,,"De-assigned on 2025-02-13, previously compressnet by [Bernie_Volz]",
4,tcp,,Unassigned,,,system,,,
4,udp,,Unassigned,,,system,,,
5,tcp,rje,Remote Job Entry,,,system,,,
5,udp,rje,Remote Job Entry,,,system,,,
6,tcp,,Unassigned,,,system,,,
6,udp,,Unassigned,,,system,,,
7,tcp,echo,Echo,,,system,,,
7,udp,echo,Echo,,,system,,,
8,tcp,,Unassigned,,,system,,,
8,udp,,Unassigned,,,system,,,
9,tcp,discard,Discard,,,system,,,
9,udp,discard,Discard,,,system,,,
9,sctp,discard,Discard,,[RFC9260],system,,,
9,dccp,discard,Discard,,[RFC4340],system,,,
10,tcp,,Unassigned,,,system,,,
10,udp,,Unassigned,,,system,,,
11,tcp,systat,Active Users,,,system,,,
11,udp,systat,Active Users,,,system,,,
12,tcp,,Unassigned,,,system,,,
12,udp,,Unassigned,,,system,,,
13,tcp,daytime,Daytime,,[RFC867],system,,,
13,udp,daytime,Daytime,,[RFC867],system,,,
14,tcp,,Unassigned,,,system,,,
14,udp,,Unassigned,,,system,,,
15,tcp,,Unassigned [was netstat],,,system,,,
15,udp,,Unassigned,,,system,,,
16,tcp,,Unassigned,,,system,,,
16,udp,,Unassigned,,,system,,,
17,tcp,qotd,Quote of the Day,,,system,,,
17,udp,qotd,Quote of the Day,,,system,,,
18,tcp,msp,Message Send Protocol (historic),,,system,,,
…
45,udp,mpm,Message Processing Module [recv],,,system,,,
46,tcp,mpm-snd,MPM [default send],,,system,,,
Give exactly one of port or name. Either way you get the whole registrations[] array rather than one row, because most ports carry several and picking one would silently hide the rest. Both directions are complete: a port lookup returns every row IANA holds for that number (including the range assignment covering it, if that is how the registry files it), and a name lookup returns every port that name holds anywhere in 0-49151.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
port | int | allowed: 0 – 65535 example: 22 | Port number to look up. Mutually exclusive with `name`; outside 0-65535 is a 400. |
name | string | allowed: 1 – 64 example: ssh | Registered service name to look up, matched case-insensitively. Mutually exclusive with `port`. |
protocol | enum | allowed: tcp | udp | sctp | dccp example: tcp | Narrow the returned registrations to one transport protocol. A port with no row for it answers 404 listing the protocols it does have. |
port int Port number to look up. Mutually exclusive with `name`; outside 0-65535 is a 400.
name string Registered service name to look up, matched case-insensitively. Mutually exclusive with `port`.
protocol enum Narrow the returned registrations to one transport protocol. A port with no row for it answers 404 listing the protocols it does have.
| Parameter | Type | Default & allowed | Description |
|---|---|---|---|
fields | list | example: port,name | Return only these fields (comma-separated). Mutually exclusive with 'exclude'. |
exclude | list | example: registrations | Return all fields except these (comma-separated). |
pretty | boolean | default: false example: true | Pretty-print the JSON response. |
unwrap | boolean | default: false example: true | Drop the envelope: return the raw array/object without data/meta wrapper. |
fields list Return only these fields (comma-separated). Mutually exclusive with 'exclude'.
exclude list Return all fields except these (comma-separated).
pretty boolean Pretty-print the JSON response.
unwrap boolean Drop the envelope: return the raw array/object without data/meta wrapper.
| Field | Type | Description | Example |
|---|---|---|---|
port nullable | integer (0-65535) | The port that was looked up; null when the lookup was by service name. | 22 |
name nullable | string | The service name that was looked up, in the registry's own spelling; null when the lookup was by port. | null |
protocol nullable | string | The transport protocol filter that was applied, or null when none was. | null |
ports | integer[] | Distinct `port` values across the returned registrations, ascending. For a range assignment that is the first port of the span, not every port it covers. | [22] |
registrationCount | integer | Number of entries in `registrations` — 1 or more, since a miss is a 404. | 3 |
registrations | object[] | Every matching row this API ships, in registry order, each with the same fields as the list route. | [{"port":22,"protocol":"tcp","serviceName":"ssh","description":"The Secure Shell (SSH) Protocol","registrationDate":null,"reference":"[RFC4251]","range":"system","assignedRange":null,"note":"Defined TXT keys: u=<username> p=<password>","unauthorizedUse":null}] |
port integer (0-65535) nullable The port that was looked up; null when the lookup was by service name.
example: 22
name string nullable The service name that was looked up, in the registry's own spelling; null when the lookup was by port.
example: null
protocol string nullable The transport protocol filter that was applied, or null when none was.
example: null
ports integer[] Distinct `port` values across the returned registrations, ascending. For a range assignment that is the first port of the span, not every port it covers.
example: [22]
registrationCount integer Number of entries in `registrations` — 1 or more, since a miss is a 404.
example: 3
registrations object[] Every matching row this API ships, in registry order, each with the same fields as the list route.
example: [{"port":22,"protocol":"tcp","serviceName":"ssh","description":"The Secure Shell (SSH) Protocol","registrationDate":null,"reference":"[RFC4251]","range":"system","assignedRange":null,"note":"Defined TXT keys: u=<username> p=<password>","unauthorizedUse":null}]
/api/ports/lookup?port=22 {
"data": {
"port": 22,
"name": null,
"protocol": null,
"ports": [
22
],
"registrationCount": 3,
"registrations": [
{
"port": 22,
"protocol": "tcp",
"serviceName": "ssh",
"description": "The Secure Shell (SSH) Protocol",
"registrationDate": null,
"reference": "[RFC4251]",
"range": "system",
"assignedRange": null,
"note": "Defined TXT keys: u=<username> p=<password>",
"unauthorizedUse": null
},
{
"port": 22,
"protocol": "udp",
"serviceName": "ssh",
"description": "The Secure Shell (SSH) Protocol",
"registrationDate": null,
"reference": "[RFC4251]",
"range": "system",
"assignedRange": null,
"note": "Defined TXT keys: u=<username> p=<password>",
"unauthorizedUse": null
},
{
"port": 22,
"protocol": "sctp",
"serviceName": "ssh",
"description": "SSH",
"registrationDate": null,
…
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports/lookup?name=redis {
"data": {
"port": null,
"name": "redis",
"protocol": null,
"ports": [
6379
],
"registrationCount": 1,
"registrations": [
{
"port": 6379,
"protocol": "tcp",
"serviceName": "redis",
"description": "An advanced key-value cache and store",
"registrationDate": "2015-04-23",
"reference": null,
"range": "registered",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
}
]
},
"meta": {
"endpoint": "ports",
"route": "/lookup",
"params": {
"name": "redis"
},
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports/lookup?port=443&protocol=tcp {
"data": {
"port": 443,
"name": null,
"protocol": "tcp",
"ports": [
443
],
"registrationCount": 1,
"registrations": [
{
"port": 443,
"protocol": "tcp",
"serviceName": "https",
"description": "http protocol over TLS/SSL",
"registrationDate": null,
"reference": "[RFC9110]",
"range": "system",
"assignedRange": null,
"note": null,
"unauthorizedUse": null
}
]
},
"meta": {
"endpoint": "ports",
"route": "/lookup",
"params": {
"port": 443,
"protocol": "tcp"
},
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports/lookup?port=80 {
"data": {
"port": 80,
"name": null,
"protocol": null,
"ports": [
80
],
"registrationCount": 7,
"registrations": [
{
"port": 80,
"protocol": "tcp",
"serviceName": "http",
"description": "World Wide Web HTTP",
"registrationDate": null,
"reference": "[RFC9110]",
"range": "system",
"assignedRange": null,
"note": "Defined TXT keys: u=<username> p=<password> path=<path to document>",
"unauthorizedUse": null
},
{
"port": 80,
"protocol": "udp",
"serviceName": "http",
"description": "World Wide Web HTTP",
"registrationDate": null,
"reference": "[RFC9110]",
"range": "system",
"assignedRange": null,
"note": "Defined TXT keys: u=<username> p=<password> path=<path to document>",
"unauthorizedUse": null
},
{
"port": 80,
"protocol": "tcp",
"serviceName": "www",
"description": "World Wide Web HTTP",
"registrationDate": null,
…
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} /api/ports/lookup?port=6000 {
"data": {
"port": 6000,
"name": null,
"protocol": null,
"ports": [
6000
],
"registrationCount": 2,
"registrations": [
{
"port": 6000,
"protocol": "tcp",
"serviceName": "x11",
"description": "X Window System",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": "6000-6063",
"note": null,
"unauthorizedUse": "Known Unauthorized Use on port 6003"
},
{
"port": 6000,
"protocol": "udp",
"serviceName": "x11",
"description": "X Window System",
"registrationDate": null,
"reference": null,
"range": "registered",
"assignedRange": "6000-6063",
"note": null,
"unauthorizedUse": "Known Unauthorized Use on port 6003"
}
]
},
"meta": {
"endpoint": "ports",
"route": "/lookup",
"params": {
…
"generatedAt": "2026-07-29T08:14:14.000Z"
}
} Answers "what is port 5432?" and "what port does Redis use?" straight from a pinned snapshot of the IANA Service Name and Transport Protocol Port Number Registry (updated 2026-07-23).
Scope — the whole assigned port space. RFC 6335 §6 splits 0-65535 into System Ports (0-1023), User a.k.a. Registered Ports (1024-49151) and Dynamic/Private ports (49152-65535), and IANA assigns nothing in the last one. This API ships every row the registry publishes for the first two:
Unassigned spans such as 225-241, but 8 of them are real named assignments — x11 owns 6000-6063 and flex-lm owns 27000-27009, and those come back as registrations carrying assignedRange).Individual rows and range rows together account for every port from 0 to 49151 with no gaps, asserted port by port by scripts/refresh-ports.mjs against the SHA-pinned upstream CSV. Out of the registry's 14,529 rows, the only ones missing here are the 1,066 that register a service name with no port number at all (legacy protocol names like arp, bootp and egp) — a port lookup cannot express those, and the 404 for one says so rather than pretending the name is unregistered.
So a 404 is informative, not a hedge: either the port sits in a range row the registry publishes as a block (the 404 names the block), or it is in the Dynamic/Private range that RFC 6335 §6 sets aside and IANA never assigns.
The registry is not a port scan. A registration says IANA assigned a name to a number; it says nothing about what is listening on your host. This endpoint performs no scanning of any kind.
Registrations ≠ real-world usage. Registry text is copied verbatim — never tidied — and famous developer ports frequently belong to something else entirely: 3000 is hbci and remoteware-cl, 9092 is XmlIpcRegSvc, 9200 is wap-wsp, 2181 is eforward, 5601 is esmagent, and OTLP's HTTP port 4318 is still Unassigned. We ship what IANA registered. The only de-facto signal here is IANA's own unauthorizedUse cell, reproduced verbatim; we never invent one.
One port, many registrations. /lookup always returns a registrations[] array because most ports carry several rows — 22 is registered for tcp, udp and sctp, 80 carries seven rows across http, www and www-http, and a name can span both ranges (epp holds 700 and 3044). Picking one would be silently wrong.
/api/ports/lookup?port=22 returns three IANA registrations for ssh — tcp, udp and sctp — the tcp row described as "The Secure Shell (SSH) Protocol" citing [RFC4251]. Port 443 is https, described as "http protocol over TLS/SSL" on tcp and udp, and registered for sctp as well.
3306 is mysql, 5432 is postgresql ("PostgreSQL Database"), 6379 is redis and 27017 is mongodb. Ask from either side: /api/ports/lookup?port=6379 or /api/ports/lookup?name=redis.
Because that is the actual IANA registration: http-alt, described as "HTTP Alternate (see port 80)", registered for both tcp and udp. We report the registry, not whichever application happens to bind 8080 on your machine.
Those are the genuine assignments; the developer conventions (Node dev servers, Kafka brokers) were never registered. This API never presents de-facto usage as registry data — the closest thing is IANA's own unauthorizedUse cell, reproduced verbatim where present.
Yes for every port IANA assigns: all 1,518 System-range rows (0-1023), all 11,179 User-range rows (1024-49151) and all 766 port-range rows — 13,463 of the 14,529 rows in the registry CSV. The remaining 1,066 register a service name with no port number at all, which a port lookup cannot express, and ports 49152-65535 are Dynamic/Private, which IANA never assigns.
No. This is a registry reference, not a scanner — it never contacts your host or any other. A registration only records the name IANA assigned to a number.
Random internet building blocks — valid IPv4/IPv6 addresses, locally-administered MACs, non-resolvable .test domains and URLs, slugs, ports and TLDs.
Parse, split and compare strict IPv4 CIDR blocks or test membership, with canonical unsigned boundaries, exact subnet counts and no truncation.
Parse, split and compare IPv6 CIDRs with exact 128-bit arithmetic, RFC 5952 canonical output and correct /0 and /128 boundaries.
IANA DNS RR TYPE assignments with numeric value, registry meaning and reference — search the scoped list or look up a mnemonic or number.
Browse IANA IPv4 and IPv6 special-purpose registries or classify an address with deterministic most-specific-prefix matching.
The current IANA delegated TLD ASCII list — search all labels, filter punycode IDNs, or look up one TLD with an honest 404.