Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


phpipam development repository

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star blank 374f33e4d622a2930833db3cbea26b5d03dc44961a6ecab0b9e13276d97d6682 (6 ratings)
Rated 4.0 out of 5
Subscribe to updates I use phpipam

Statistics on phpipam

Number of watchers on Github 656
Number of open issues 583
Average time to close an issue 5 days
Main language PHP
Average time to merge a PR 8 days
Open pull requests 78+
Closed pull requests 38+
Last commit over 1 year ago
Repo Created over 4 years ago
Repo Last Updated over 1 year ago
Size 12.4 MB
Organization / Authorphpipam
Latest Release1.3.1
Page Updated
Do you use phpipam? Leave a review!
View open issues (583)
View phpipam activity
View on github
Fresh, new opensource launches πŸš€πŸš€πŸš€
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating phpipam for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about phpipam Leave a review
Ease of use with API and RBAC integration
i think the documentation better be more and also api should be enhancement i think it weak for now
It's not quite fully mature yet.




phpIPAM is an open-source web IP address management application. Its goal is to provide light and simple IP address management application. It is ajax-based using jQuery libraries, it uses php scripts and javascript and some HTML5/CSS3 features, so some modern browser is preferred to be able to display javascript quickly and correctly.



  • MASTER: Current development release
  • 1.3: Productional branch for 1.3.x release
  • 1.2: Productional branch for 1.2.x release (obsolete)
  • Other branches: Feature testing

I forgot my Admin password!?

Just run php functions/scripts/reset-admin-password.php in the cli and enter your new password

What are the credentials for a fresh install?

The Default credentials for a new instance of phpIPAM are the same as the credentials for the demo page: Admin / ipamadmin




See misc/Roadmap


Special thanks are going also to the Hosterdam team ( for the VPS server that is used for development of phpIPAM and for demo site.

And also to all users that filed a bug report / feature report and helped with feature testing!


phpIPAM is released under the GPL v3 license, see misc/gpl-3.0.txt.

phpipam open issues Ask a question     (View All Issues)
  • almost 3 years why api/my_app/addresses/search_hostname/{hostname}/ report Invalid ID?
  • almost 3 years Can't POST to /api/my_app/addresses/first_free/{subnetId}/
  • almost 3 years [Information] Limit the number of subnets on output
  • almost 3 years Cannot Export all sections
  • almost 3 years IP request form fatal error
  • almost 3 years PHP Error: Unable to convert variable to GMP
  • almost 3 years [BUG] Duplicated subnets
  • almost 3 years a kind request to provide more correct support of Russian language in the system
  • almost 3 years Increase Column Size for 'username' in Logs table
  • almost 3 years Separate user mail notification option for IP Requests and state changes
  • almost 3 years Problems with versiΓ³n 1.2.1
  • almost 3 years Subnet used calculation.
  • almost 3 years Feature request - Choose which nested subnets/folder at the import of subnets
  • about 3 years Changelog Doesn't Track Changes Made Via API
  • about 3 years Search in changelog by user from AD writable at non-latin(cyrillic) symbols - not working
  • about 3 years Auto-nest IP's after subnet creation - Feature Request
  • about 3 years [feature request] Add possibility to merge subnets
  • about 3 years Feature request: get tagID by tag type
  • about 3 years free subnet ranges
  • about 3 years [Information] - IP Request send Mail
  • about 3 years Logo
  • about 3 years [Bug] Filtered view in NAT section
  • about 3 years Tree structure in overview not working
  • about 3 years [Request] IP Routing on router
  • about 3 years Kea DHCP management functional?
  • about 3 years Search for / swaps with search for %2F
  • over 2 years Error with import IP after a scan
  • over 2 years ..
  • over 2 years Longest matching subnet
  • over 2 years API problem (exception)
phpipam open pull requests (View All Pulls)
  • update footer.php
  • Update phpipam.po
  • Update phpipam.po
  • Update class.Subnets.php
  • Public IP prequests
  • Consolidate IP Information
  • Print enhancement
  • Fix address_types caching
  • Variable reference typo.
  • Fixed subnet XLS Template Creation & Import to db
  • Deactivate AutoTLS in PHPMailer if the Security is setted to 'None'.
  • fix git warning: CRLF will be replaced by LF
  • add 42U Rack
  • fix draw_rack when adding new device and deviceId is empty
  • Call exit() to avoid redirection loop
  • Link PTR-Records if "Autocreate reverse records" is disabled.
  • Api token write reduction
  • Hostsearch
  • Fix adduser
  • Add OpenSearch to PHPIpam
  • fix LDAP user lookups for non-NetIQ types
  • Update pingCheck.php
  • Seems like a bug in the print-address-table.php
  • Section API enhancement
  • Adding IP Addresses import.
  • Update class.Subnets.php
  • There are some special records that should support _ as a character.
  • add Public IP Request Setting
  • Fix parent subnet scanning issue with fping
  • add SAML2 auth module
  • Attempt to improve LDAP login process
  • Avoid showing unmonitored IP addresses in inactive hosts list
  • mySQL import: Update steps.
  • Same font-family for class hero-unit
  • Correct typo
  • Fix SAML routes and add a API endpoint to fetch unallocated subnet and assign it to specified string
  • Subnet Import - PHP Strict Standards Fix
  • Search by custom field
  • Improve API
  • Import VRF's with underscore character #710
  • Fix 'Call to undefined function ctype_digit()' with PHP version 5.6.X
  • Update adLDAPUtils.php
  • Updated language files for nl_NL (Nederlands) ready for 1.3
  • remove warning missing json (upgrade case)
  • Fix IPv6 subnet sorting
  • Deterministically sort "search_results" using usort()
  • Reducing subnets to only supernets in the main section views.
  • Add Alpine Dockerfile
  • Do not delete reverse zone on delete subnet if reverse zone is not empty in PowerDNS
  • Add VLAN details in subnet API
  • Add configurable variables in config.php
  • Adding reserved words to validate_record_name
  • Bug fixes
  • Minor optimisation for the subnet details index.php page
  • Optimize fetch subnet slaves recursive
  • Optimize app/admin/import-export/import-recompute-logic.php
  • Composer Integration
  • Color change
  • Add IMAP authentication
  • Load rack image directly from disk.
  • Order IP Request dropdown menu by subnet instead of table ID
  • Checking the availability of HTTP_X_FORWARDED_HOST, block XSS
  • Small refactor of index.php & some duplicated code removal
  • class.Thread.php: Use streams for IPC & pingCheck.php/discoveryCheck.php cleanup
  • Allow address search by description
  • Extend rack editor features
  • #1282 - BigEnums
  • Response from subnet get specific address
  • Show the device and port using ip gateway
  • Optimised calculate_subnet_usage()
  • API: Search hostname containing given string
  • Fixes error during ipaddress discovery
  • Equalize ipaddress description fieldsize to varchar(256)
  • Change SSL / TLS description
  • Detailed Info on IPv6 Calculator
  • Add feature partial-hostname-search
  • doc: API docs
  • Fix a bunch of implicit const to string assumptions
phpipam questions on Stackoverflow (View All Questions)
  • jQuery error during phpIPAM database installation
phpipam list of languages used
phpipam latest release notes
1.3.1 1.3.1
New features:
+ Circuits module (circuits, providers, map, ...) (#731);

Enhancements, changes:
+ Racks:
    + Automatic location assignment when device added to rack (#1230);
    + Rack map showing map of all racks in location;
    + Rack back side;
+ Compact menu layout (per-user setting, showing only icons);
+ Network to network static nat;
+ Selectable logo size (from config.php) (#952);
+ Added default option for permissions propagations (#1351);
+ API:
    + Added Circuits controller;
    + Encrypyted requests can now also be form-encoded (#1191);
    + Introduce mcrypt AES compatibility (#1516);
    + Fixed field ip not displayed when filters applied (#1529);
+ New resolve hostnames option for subnet (#1222):
    + Updates hostnames via pingCheck.php script (if parameter set for subnet);
    + Updates hostnames via resolveIPaddresses.php script (if parameter set for subnet);
    + On-the-fly empty hostname update if resolved (if parameter set for subnet and enabled globally);
    + Added this infor to tools > scanned networks;
+ Added custom_ prefix to custom field names to avoid duplication with custom fields (#1387);
+ Added option to hide IP requests for unauthenticated users on login page (#1394);
+ Performance optimizations for locations and subnet usage calculation;
+ Added user groups custom fields;

+ French translation updated to verson 1.3;
+ German translation updated to verson 1.3;

+ Fixed RACK images not displayed if not root location (#1204);
+ Fixed import gateway ip (#1240);
+ Fixed JSON_UNESCAPED_UNICODE for PHP 5.3 (#1135, #1245);
+ Rename class Thread to PingThread to avoid naming conflict with pthreads Thread class (#1254);
+ Fixed custom fields integer on subnet (#1266);
+ Fixed Import Ip-adress doesnt update location (#1284);
+ Fixed json_error for logo upload (#1256);
+ Fixed CSRF error when moving orphaned addresses (#1303);
+ Fixed VRF fetching via API by Id;
+ Fixed map issues when quotes are in name/description (#1384);
+ Fixed item not removed from NAT when deleted (#1378);
+ Fixed Error when error_reporting = E_ALL about strict standards when importing IP addresses (#1372);
+ Fixed Apostrophe errors in text custom fields (#1375);
+ Fixed API error when creating address under folder (#1507);
+ Fixed SNMPv3 (#1119);

Security Fixes:
+ Fixed XSS issues (#1403, #1521, #1500);
1.3 1.3
New features:
+ Multicast module (RFC1112, RFC2464) with IP to MAC mapping and multicast networks overview;
+ Threshold module for subnets;
+ Racks module (Rack drawing) for devices;
+ Address linking by selected field;
+ Custom logo for site and mails;
+ PSTN number management module;
+ SNMP module:
    + Subnets discovery from route table (all subnets, nested subnets, add new subnet);
    + Hosts discovery scans via ARP check/interface check;
    + Hosts discovery scans via ARP + MAC address check (detects interface);
    + VLAN discovery;
    + VRF discovery;
    + Status update scans via ARP check;
+ NAT module
    + Source / static / destination NAT;
    + Linking subnet to NAT
    + Show bindings under tools and next to IP address / subnet
+ Locations module
    + Map devices / racks / subnets to location;
    + Google maps integration;
+ SAML2 authentication (SSO)

Enhancements, changes:
+ Folders can now contain addresses;
+ API:
    - Api v1 removed;
    + If subnet gateway defined gatewayId is returned in subnet details;
    + Automatically added nameservers to subnet results;
    + Added subnet usage result for each subnet in section;
    + Added custom fields for all controllers;
    + New subnets automatically get parent permissions;
    + Added IP calculation to subnet;
    + Changed all not_found when searching objects to 404 and all invalid parameters to 409 (conflict);
    + If new item is created id will be available in response field id;
    + New parameter $time_response in api/index.php that will return execution time in field time";
    + Extensive first_free subnet calls search speedup;
    + POST transaction locking;
    + All first_free and first_address responses are now "data" instead of "ip" and "subnet" for consistency;
    + Subnet splitting now copies over custom fields values by default (user custom_fields=no to revert);
    + Added API option to nest custom_fields to assure correct structure;
    + Added option to show/hide links in api by default for each app;
    + Changed API http response codes;
    + New methods:
        + users:
            GET    /user/expires/                         // returns token expiration date
            GET    /user/token-expires/                   // returns token expiration date
            GET    /user/users/                           // returns all users (rwa app permissions required)
            GET    /user/admins/                          // returns all admin users (rwa app permissions required)
        + addresses:
            GET    /addresses/first_free/{subnetId}/      // returns first available address (subnetId can be provided with parameters)
            GET    /addresses/{ip}/{subnetId}/            // returns IP address from subnet
            GET    /addresses/search/{hostname}/          // Will search addresses by hostname
            DELETE /addresses/{ip}/{subnetId}/            // deletes IP address from subnet
            POST   /addresses/first_free/{subnetId}/      // will search for first free address in subnet, creating new address
        + subnets:
            GET    /subnets/{id}/addresses/{ip}/          // returns IP address from subnet
            GET    /subnets/{id}/first_free/              // returns first free address in subnet
            GET    /subnets/{id}/first_subnet/{mask}/     // returns first available subnets with specified mask
            GET    /subnets/{id}/all_subnets/{mask}/      // returns all available subnets with specified mask
            POST   /subnets/{id}/first_subnet/{mask}/     // creates first free subnet under master with specified mask
            DELETE /subnets/{id}/permissions/             // removes permissions
            PATCH  /subnets/{id}/permissions/             // sets subnet permissions (?grouname1=ro&groupname2=3&43=1)
    + New controller Prefix;
    + New controller Devices;
    + New subcontrollers:
        + /tools/nat/
        + /tools/racks/
        + /tools/locations/
+ Widgets:
    + New threshold widget;
    + New inactive hosts widget;
    + New Locations widget;
+ PowerDNS:
    + Default domain for PTR records (if hostname is not set);
    + When removing IP address additional option that removes all associated PDNS records (ip and hostname);
+ Permit normal users to manage VLANs / VRFs;
+ Inactive (offline) hosts tools page;
+ MAC address normalization;
+ jQuery tables;
+ Permission delegation now only delegates changes not whole permission set;
+ Users with RWA permission can manage IP requests and receive IP request mails + changelog mails for subnet;
+ IPv4 subnet link to IPv6 for dual-stack info;
+ Removed inacessible DNS servers if timeout to prevent page load timeouts;
+ Added option to only show supernets to limit pageload [#844 #816 #736];
+ Added last scan info to subnet details;
+ Added option to update address tags when address state change occurs (pingCheck) [#840];
+ Added mantaneance mode;
+ Added inactive addresses removal script;
+ Subnet overlapping now checked also inside folders to prevernt duplicates;
+ Subnet overlapping now checked also between sections if VRF defined;
+ Added new settings directive that requires unique subnets accross sections;
+ Added index check in verify database to detect and fix possible missing DB indexes;
+ Added MAC address vendor display option;

+ PowerDNS regenerate PTR records now only updates current subnet (before whole zone);
+ Fixed visual bug on 32-bit systems;
+ Normal users with RWA permissions can scan subnets;
+ Changed default timestamp from 0000-00-00 00:00:00 to 1970-01-01 00:00:01 to avoid SQL install errors if strict mode;
+ Fixed https access on non-standard ports;
+ Extended username to 255 chars for LDAP logins;
+ Fixed search export invalid encoding and data may have been lost XLS file error;
+ Fixed invalid character encoding in API responses;
+ PowerDNS records cannot be created on slave zone;
+ Fixed subnet resizing bug if subnet contained slaves;
+ Added separate CSRF cookies for each address/subnet/pstn object;
+ Deleted items are now shown and searchable from changelog;
1.2 1.2
New features:
+ Added multiple simultaneous authentication methods (Apache, AD, LDAP, Radius, NetIQ);
+ Added fping scanning support;
+ Added selectable scanning type (ping/pear/fping);
+ Added L2 domains;
+ Added option to define address as default GW for subnet;
+ Added customizable address tags with compressed option;
+ Added temporary subnet / address shares;
+ Added quick subnet masks;
+ Added nameserver sets per subnets (jonashauge);
+ Added optional syslog as log location;
    + documentation:
    + API v2, old v1 support added
    + Complete rewrite of all API calls;
    + New security models (crypt, ssl, none);
    + Support for custom fields;
    + JSON / XML output
    + Full read/write controllers (Sections, Subnets/Folders, Addresses, Vlans, Vrfs);
+ PowerDNS integration:
    + Automatic reverse records creation (PTR) - IPv4 and IPv6;
    + Automatic SOA, NS record creation;
    + DNS domain management;
+ Added Scan agents to scan subnets remotely;
+ Added firewall zone mappings and module;
+ Added per-subnet DNS resolvers;
+ Added option to mark subnet as utilized (full);

+ All tables are now InnoDB by default;
+ Upgraded jQuery to 2.1.3;
+ All functions rewritten to classes/methods;
+ Parametized all SQL queries, moved from MySQLI to PDO;
+ Added VLAN/VRF to search and to search results export;
+ Redesigned admin and tools menu;
+ Added scanned/discovered subnets to tools for faster overview;
+ Per-user display settings;
+ New widget - tools shortcuts;
+ New widget - IP calculator;
+ New widget - request IP address;
+ Clickable links for subnet fields;
+ Custom VRF fields;
+ Subnets can be now linked to devices;
+ Import/export enhancements;
+ Fast user switching for admins to impersonate user;
+ Opened folders and subnets in tree menu are saved on page reload;
+ RWA users can now process IP requests;
+ Added auto-suggest for possible slave subnets;
+ SSL option for MySQL connections;
+ Enum custom field support;
+ Added password reset script;
+ Set sections to display VRF in;

Security Fixes:
+ Parametized all MySQL querries;
+ Fixed plainpass being logged on user update;
+ Fixed XSS exploit on /error/;
+ Added CSRF protection to forms;

+ Added Czech translation;

+ Fixed bug with SSL/TLS smtp servers;
+ Fixed visual subnet display issues on 32bit systems;
+ Fixed IPv6 split subnets bug;
+ Fixed /31 ping bug scanning out of boundaries;
+ Fixed nested broadcast not counted to used percentage;
+ Fixed invalid redirect after timeout;
+ Fixed discovery script index overridden;
+ Fixed dashboard graphs links to subnets;
+ Fixed Invalid ID on subnet scan of large subnets;
Other projects in PHP