🚀 NetBox GeoIP Plugin v1.1
Release Date: November 2025
Requires: NetBox ≥ 4.1.3 • Python ≥ 3.10
✨ Enhancement
-
🧩 Direct Integration (No Custom Fields)
GeoIP fields (Enable GeoIP,Country,Region,City) are now injected directly into NetBox’s native Prefix and IPAddress forms — no moreextras.CustomFielddependencies. -
🌍 Dynamic Region Filtering
Region choices now auto-filter by selected Country using NetBox’s dynamic form logic. -
🕒 Changelog Synchronization
GeoIP changes are now logged together with their parent Prefix/IP object for complete traceability. -
🧹 Safer, Self-Contained Plugin
Removed legacy migrations that edited NetBox core files (ipam/urls.py) or created custom fields.
The plugin now operates entirely through dynamic form patching and runs without any NetBox core modifications. -
🗑️ Auto-Delete Behavior
Disabling Enable GeoIP automatically deletes the related GeoIP record.
⚠️ Upgrade Notes
If upgrading from v1.0:
-
Remove old custom fields (
country,region,city,geoip_feed) from Customization → Custom Fields. -
Uncomment and remove the following in
ipam.urls.py:- from netbox_geoip import views as netbox_geoip_views # remove from the top # Prefixes ... + path('prefixes/add/', views.PrefixEditView.as_view(), name='prefix_add'), - # path('prefixes/add/', views.PrefixEditView.as_view(), name='prefix_add'), - path('prefixes/add/', netbox_geoip_views.CustomPrefixAddView.as_view(), name='prefix_add'), ... + path('prefixes/edit/', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'), - # path('prefixes/edit/', views.PrefixBulkEditView.as_view(), name='prefix_bulk_edit'), - path('prefixes/edit/', netbox_geoip_views.CustomPrefixBulkEditView.as_view(), name='prefix_bulk_edit'), ... - path('prefixes/<int:pk>/edit/', netbox_geoip_views.CustomPrefixEditView.as_view(), name='prefix_edit'), # IP addresses ... + path('ip-addresses/add/', views.IPAddressEditView.as_view(), name='ipaddress_add'), - # path('ip-addresses/add/', views.IPAddressEditView.as_view(), name='ipaddress_add'), - path('ip-addresses/add/', netbox_geoip_views.CustomIPAddressAddView.as_view(), name='ipaddress_add'), ... + path('ip-addresses/edit/', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'), - # path('ip-addresses/edit/', views.IPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'), - path('ip-addresses/edit/', netbox_geoip_views.CustomIPAddressBulkEditView.as_view(), name='ipaddress_bulk_edit'), ... - path('ip-addresses/<int:pk>/edit/', netbox_geoip_views.CustomIPAddressEditView.as_view(), name='ipaddress_edit'),
-
Run plugin migrations:
python manage.py migrate netbox_geoip