diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index ac080bb0af4446e7cdf6e4f8fef01ff4581dad5e..e5576d489b44e467a12f213a7d14d0920b8da7e4 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -237,6 +237,14 @@ def find_interfaces_and_services(address_str):
 @common.require_accepts_json
 def peer_info(address):
 
+    # canonicalize the input address first ...
+    try:
+        obj = ipaddress.ip_address(address)
+        address = obj.exploded
+    except ValueError:
+        raise ClassifierProcessingError(
+            'unable to parse %r as an ip address' % address)
+
     r = common.get_current_redis()
 
     cache_key = 'classifier-cache:peer:%s' % address