TechScan365IPAM, DHCP & subnet tools, reviewed

Head to head

phpIPAM vs NetBox: address register or source of truth?

phpIPAM and NetBox both hold your IP plan for free, but one scans the network and the other models it. How to choose for a small IT team.

TechScan365 set these two side by side on its own account. We have no connection to phpIPAM project or NetBox Labs, and no vendor saw this page before it went up.

Picture a two-person IT team that has just lost a Saturday to an address conflict and decided the spreadsheet has to go. They shortlist the two open-source names everyone mentions, stand up both in a test VM, and discover they are not really the same kind of product. phpIPAM feels like an address register that also checks the network. NetBox feels like a model of the whole infrastructure in which IP addresses are one chapter. Both are free to self-host. The choice comes down to what you want the record to do when it disagrees with reality.

At a glance

phpIPAM NetBox
Licence GPLv3, self-hosted Apache 2.0 (Community); paid NetBox Cloud and Enterprise from NetBox Labs
Stack PHP + MySQL/MariaDB on a web server Python/Django + PostgreSQL + Redis
Scope IP addresses, subnets, VLANs, VRFs, plus basic devices/racks IPAM plus DCIM: sites, racks, devices, interfaces, cables, circuits, virtualization
Built-in network scanning Yes: ping/fping status checks and host discovery via cron scripts No: NetBox does not talk to network nodes; discovery is a separate product or your own scripts
Import XLS/CSV per subnet CSV/YAML/JSON bulk import in the UI, plus API
API REST API REST and GraphQL APIs; available-IP and available-prefix endpoints
Overlapping space VRFs VRFs, each optionally enforcing unique addresses
Typical learning curve Short; recognisable within an afternoon Longer; the data model rewards planning
Best fit SMB and mid-size teams wanting an IP register that notices drift Teams heading toward automation and a full infrastructure source of truth

The real difference: who reconciles

On this site the main test is how well a tool keeps the recorded plan and the live network in agreement. The two products answer that very differently.

phpIPAM reconciles for you. Per subnet you can turn on status checks and host discovery, then schedule the bundled pingCheck.php and discoveryCheck.php scripts from cron. The first updates when each recorded address was last seen; the second reports live hosts that are not in the record. For a team whose main pain is undocumented statics and stale rows, that loop is the whole point, and it works on day one with no code.

NetBox expects to be told. Its own documentation is explicit that it does not interact with network devices directly; it publishes data for automation, monitoring and assurance tools to consume. Reality gets in through imports, the API, or an add-on: NetBox Labs sells NetBox Discovery and NetBox Assurance, and the community has plugins and scripts. The upside is a cleaner model of intent. The downside is that “what answers on the wire” isn’t compared with the record unless you build or buy that step.

Data model and scope

phpIPAM is organized around sections, subnets and addresses, with VLANs, VRFs, NAT entries, devices and racks alongside. It is deliberately IP-centric, and that keeps the interface quick for helpdesk staff who only need to find or claim an address.

NetBox starts from sites, devices and interfaces. An IP address in NetBox can be assigned to a specific interface on a specific device, and prefixes nest automatically under aggregates. VLANs can be grouped so that IDs stay unique per site or scope. This makes questions like “which switch port is 10.60.2.140 on?” answerable from the record, provided someone keeps interfaces and cables documented. If nobody will, that extra structure becomes empty fields.

Automation and APIs

Both have REST APIs, but NetBox is built API-first. Asking for the next free address in a prefix is one call:

curl -s -H "Authorization: Bearer $NETBOX_TOKEN" \
  https://netbox.example.net/api/ipam/prefixes/42/available-ips/?limit=1

A POST to the same endpoint allocates it. Current releases use v2 tokens with the Bearer scheme; the older Token scheme is deprecated and slated for removal in 5.0. Ansible, Terraform and many internal tools already speak NetBox, which is why teams heading toward config generation tend to land there.

phpIPAM’s API covers sections, subnets, addresses and first-free-address lookups too, and is perfectly usable for provisioning scripts. It is simply not the centre of the product the way it is in NetBox.

Running it

phpIPAM runs on a standard LAMP-style host; the 1.8.x branch supports PHP 7.2 through 8.5 with MySQL or MariaDB. Upgrades are mostly “replace files, run the database migration”. The scan host must reach every monitored subnet.

NetBox needs Python 3.12–3.14, PostgreSQL 15+ and Redis 6.0+ in current releases, plus a WSGI server and reverse proxy. Minor releases arrive frequently and plugins must track them, so budget a little time each quarter. If that maintenance is unwelcome, NetBox Cloud moves hosting to the vendor; prices are by quote at the time of writing, so check NetBox Labs’ pricing page.

Where each falls short

Verdict

Pick phpIPAM if your problem is address hygiene: conflicts, undocumented statics, DHCP ranges nobody can explain. You want a register that scans your own subnets on a schedule, flags new hosts and shows utilization, with a UI the whole team can use after a short walkthrough.

Pick NetBox if you want a single model of sites, devices, interfaces and addresses that automation reads from, you have (or plan) scripts or pipelines that consume it, and you are willing to feed reality in through imports, integrations or a discovery add-on.

Some teams run both for a while: phpIPAM as the day-to-day address register, NetBox growing as the design record. That works only if one of them is clearly authoritative for IPs; otherwise you have rebuilt the two-spreadsheet problem with better software.

Read more

Full reviews

See the wider field in ipam software.