diff --git a/inventory_provider/routes/classifier.py b/inventory_provider/routes/classifier.py
index c62c50eea7313d7c21403948da53132e33d13591..f27cf07b6dea0ef14ec2e92af8ae1acff8a0c27d 100644
--- a/inventory_provider/routes/classifier.py
+++ b/inventory_provider/routes/classifier.py
@@ -247,6 +247,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