Browse Source

Fixes #2066: Catch AddrFormatError on invalid IP addresses

Jeremy Stretch 7 years ago
parent
commit
b0cd372af9
1 changed files with 4 additions and 2 deletions
  1. 4 2
      netbox/ipam/fields.py

+ 4 - 2
netbox/ipam/fields.py

@@ -2,7 +2,7 @@ from __future__ import unicode_literals
 
 from django.core.exceptions import ValidationError
 from django.db import models
-from netaddr import IPNetwork
+from netaddr import AddrFormatError, IPNetwork
 
 from .formfields import IPFormField
 from . import lookups
@@ -26,7 +26,9 @@ class BaseIPField(models.Field):
             return value
         try:
             return IPNetwork(value)
-        except ValueError as e:
+        except AddrFormatError as e:
+            raise ValidationError("Invalid IP address format: {}".format(value))
+        except (TypeError, ValueError) as e:
             raise ValidationError(e)
 
     def get_prep_value(self, value):