HTTP web UI¶
The switch’s own web interface, driven the way a browser drives it: log in, fetch a page, parse it, and post the form the page would have posted. Available on every model in this fleet except the two unverified SNMP-only entries.
Sometimes it is the only reachable interface — through a firewall that permits nothing else — and on Plus switches it is the only route to PoE control, which NSDP has no tag for.
Switches that speak it¶
Model |
Product |
Class |
Ports |
Reached over |
|---|---|---|---|---|
M4300-24X (XSM4324CS) |
fully managed |
28 |
|
|
M4300-16X (XSM4316) |
fully managed |
16 |
|
|
GSM7252PS |
fully managed |
52 |
|
|
GSM7228PS (S3300) |
smart managed pro |
52 |
|
|
GS110EMX |
plus |
10 |
|
|
GS305EP |
plus |
5 |
|
|
GS728TPP |
smart managed pro |
28 |
|
|
GS105PE |
plus |
5 |
|
What it can do, per switch¶
Web UIs vary enormously: a — below means that model’s firmware ships no page
carrying the data, which is a real limit of the interface rather than a missing
implementation here.
Operation |
m4300-24x |
m4300-16x |
gsm7252ps |
gsm7228ps |
gs110emx |
gs305ep |
gs728tpp |
gs105pe |
|---|---|---|---|---|---|---|---|---|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
— [HTTP-1] |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
— [HTTP-2] |
— [HTTP-3] |
✓ |
— [HTTP-4] |
|
✓ |
✓ |
✓ |
✓ |
— [HTTP-5] |
— [HTTP-6] |
✓ |
— [HTTP-7] |
|
— [HTTP-8] |
✓ |
✓ |
✓ |
— [HTTP-9] |
✓ |
✓ |
||
✓ |
✓ |
✓ |
✓ |
|||||
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
||
✓ |
✓ |
✓ |
||||||
✓ |
✓ |
✓ |
||||||
✓ |
✓ |
✓ |
||||||
✓ |
✓ |
✓ |
✓ |
|||||
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|||
✓ |
✓ |
✓ |
✓ |
✓ |
||||
✓ |
✓ |
✓ |
✓ |
✓ |
||||
✓ |
✓ |
✓ |
✓ |
✓ |
||||
✓ |
||||||||
✓ |
||||||||
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
|
✓ |
✓ |
✓ |
||||||
✓ |
✓ |
✓ |
||||||
✓ |
✓ |
✓ |
✓ |
|||||
✓ |
✓ |
|||||||
✓ |
✓ |
|||||||
✓ |
✓ |
|||||||
model ‘gs728tpp’ web UI has no page for get_stats (Per-port octet/packet counters)
model ‘gs110emx’ web UI has no page for get_lldp (LLDP neighbour table)
model ‘gs305ep’ web UI has no page for get_lldp (LLDP neighbour table)
model ‘gs105pe’ web UI has no page for get_lldp (LLDP neighbour table)
model ‘gs110emx’ web UI has no page for get_macs (MAC/FDB forwarding table)
model ‘gs305ep’ web UI has no page for get_macs (MAC/FDB forwarding table)
model ‘gs105pe’ web UI has no page for get_macs (MAC/FDB forwarding table)
model ‘m4300-24x’ web UI has no page for get_poe (Per-port PoE status and power draw)
model ‘gs110emx’ web UI has no page for get_poe (Per-port PoE status and power draw)
model ‘gs105pe’ web UI has no page for get_poe (Per-port PoE status and power draw)
model ‘gsm7228ps’ web UI has no page for get_sensors (Fan/PSU/temperature sensors)
model ‘gs110emx’ web UI has no page for get_sensors (Fan/PSU/temperature sensors)
model ‘gs305ep’ web UI has no page for get_sensors (Fan/PSU/temperature sensors)
model ‘gs105pe’ web UI has no page for get_sensors (Fan/PSU/temperature sensors)
model ‘gs305ep’ web UI has no page for get_mgmt_ip (Management IP configuration)
model ‘m4300-24x’ web UI has no page for get_hostname (The switch’s host name)
model ‘m4300-16x’ web UI has no page for get_hostname (The switch’s host name)
model ‘gsm7252ps’ web UI has no page for get_hostname (The switch’s host name)
model ‘gsm7228ps’ web UI has no page for get_hostname (The switch’s host name)
model ‘gs305ep’ web UI has no page for get_hostname (The switch’s host name)
model ‘gsm7228ps’ web UI has no page for get_users (Local login accounts and their access level)
model ‘gs110emx’ web UI has no page for get_users (Local login accounts and their access level)
model ‘gs305ep’ web UI has no page for get_users (Local login accounts and their access level)
model ‘gs728tpp’ web UI has no page for get_users (Local login accounts and their access level)
model ‘gs105pe’ web UI has no page for get_users (Local login accounts and their access level)
model ‘gsm7228ps’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gs110emx’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gs305ep’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gs728tpp’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gs105pe’ web UI has no page for get_services (Which management services (http/https/telnet/ssh) are enabled)
model ‘gs110emx’ web UI has no page for get_syslog (Remote-logging configuration and collectors)
model ‘gs305ep’ web UI has no page for get_syslog (Remote-logging configuration and collectors)
model ‘gs728tpp’ web UI has no page for get_syslog (Remote-logging configuration and collectors)
model ‘gs105pe’ web UI has no page for get_syslog (Remote-logging configuration and collectors)
model ‘gs305ep’ web UI has no page for set_port_enabled (Bring a port up or down)
model ‘gs105pe’ web UI has no page for set_port_enabled (Bring a port up or down)
model ‘m4300-24x’ web UI has no page for set_poe (Enable or disable PoE on a port)
model ‘gs110emx’ web UI has no page for set_poe (Enable or disable PoE on a port)
model ‘gs105pe’ web UI has no page for set_poe (Enable or disable PoE on a port)
model ‘m4300-24x’ web UI has no page for cycle_poe (Power-cycle a PoE port)
model ‘gs110emx’ web UI has no page for cycle_poe (Power-cycle a PoE port)
model ‘gs105pe’ web UI has no page for cycle_poe (Power-cycle a PoE port)
model ‘m4300-24x’ web UI has no page for clear_poe_fault (Clear a latched PoE fault)
model ‘gs110emx’ web UI has no page for clear_poe_fault (Clear a latched PoE fault)
model ‘gs105pe’ web UI has no page for clear_poe_fault (Clear a latched PoE fault)
model ‘m4300-24x’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘m4300-16x’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘gsm7252ps’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘gsm7228ps’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘gs110emx’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘gs305ep’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘gs105pe’ web UI has no page for set_port_description (Set or clear a port’s description)
model ‘m4300-24x’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘m4300-16x’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gsm7252ps’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gsm7228ps’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gs110emx’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gs305ep’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘gs105pe’ web UI has no page for set_port_speed (Force a port’s speed/duplex, or restore auto-negotiation)
model ‘m4300-24x’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘gsm7252ps’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘gsm7228ps’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘gs110emx’ web UI carries no CSRF ‘hash’ token, which the HTTP create_vlan writer requires
model ‘m4300-24x’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘m4300-16x’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘gsm7252ps’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘gsm7228ps’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘gs110emx’ web UI carries no CSRF ‘hash’ token, which the HTTP delete_vlan writer requires
model ‘gs110emx’ web UI has no page for set_mgmt_ip (Set the management IP/mask/gateway)
model ‘gs305ep’ web UI has no page for set_mgmt_ip (Set the management IP/mask/gateway)
model ‘gs728tpp’ web UI has no page for set_mgmt_ip (Set the management IP/mask/gateway)
model ‘gs105pe’ web UI has no page for set_mgmt_ip (Set the management IP/mask/gateway)
model ‘m4300-24x’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘m4300-16x’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘gsm7252ps’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘gsm7228ps’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘gs305ep’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘gs105pe’ web UI has no page for set_hostname (Set the switch’s host name)
model ‘gsm7252ps’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gsm7228ps’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gs110emx’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gs305ep’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gs728tpp’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
model ‘gs105pe’ web UI has no page for remove_syslog_collector (Remove a remote syslog collector)
this model takes a certificate by SCP file-copy to the switch (FastpathScpUpdater), not over the web UI – use upload_certificate_scp
this model takes a certificate by SCP file-copy to the switch (copy scp://), not over the web UI – use upload_certificate_scp
model ‘gs110emx’ web UI has no page for upload_certificate (Upload an HTTPS certificate over the web UI)
model ‘gs305ep’ web UI has no page for upload_certificate (Upload an HTTPS certificate over the web UI)
model ‘gs105pe’ web UI has no page for upload_certificate (Upload an HTTPS certificate over the web UI)
Five web-UI protocols, not one¶
Netgear has no single web UI. Five distinct login schemes run across this fleet, each paired with its own HTML dialect, and they share a transport and almost nothing else — different credential handling, different session mechanics, different page sets. Each gets its own page:
Login scheme |
Switches |
HTML dialect |
Reached over |
|---|---|---|---|
HTTP |
|||
HTTP |
|||
HTTP |
|||
HTTP |
|||
HTTP |
Everything below this point holds for all five.
Endpoint specs¶
Every model’s page set is one HttpModelSpec record: the login path and field
names, and a path per operation — dashboard, statistics, PoE status and config,
VLAN config and membership, PVIDs, MAC table, LLDP, system info, management IP,
port config, certificate upload, reboot, logout.
A None path means this firmware ships no such page, and the reader raises
rather than inventing data. That is precisely what the
Support matrix gaps table reports. A page that exists but has not been
found yet looks identical from here — which is why those entries are treated as
work rather than as facts about the hardware.
Non-standard transport details are in the spec too: the M4300-16X’s web UI is on HTTPS port 49152, and its spec carries both.
Reads are gated on verification¶
HttpModelSpec.reads_verified records whether a model’s web reads have been
cross-verified against live hardware. While it is False the facade refuses
to dispatch HTTP for reads and writes: output nobody has checked is worse than
no output. Certificate upload is the one deliberate exception — a grounded write
flow that does not depend on read verification.
Gotchas¶
The switch answers with a login page instead of the page you asked for.
HttpUnexpectedPageError almost always means the session went away.
Logins start failing under frequent polling. Where a spec has no
logout_path, sessions are left to expire on their own, and a switch with a
small session table can refuse new logins until they do.
Errors arrive with HTTP 200. On the FASTPATH XUI dialects a failed write
reports itself in hidden err_flag / err_msg fields while the response
code stays 200, so a write that “succeeded” by status code may not have — see
CHEETAH_FORM — the Cheetah login form.
A write is refused in a way that looks like a device limitation. Web-UI writes replay the whole form, including hidden and list-navigation fields, and the firmware rejects an incomplete one — which is all “the GSM7252PS refuses PoE writes” ever was: one absent list-unit field.
API¶
netgear_switch.http_write—HttpWriter,AsyncHttpWriter, and the certificate-upload flows.netgear_switch.protocols.http.endpoints— every model’s spec, with the capture that grounds it named in comments.netgear_switch.protocols.http.parse— the per-dialect parsers.netgear_switch.protocols.http.forms— form scraping and replay.netgear_switch.protocols.http.crypt— the login hash transforms.