Browse Source

Pretty-print IP address on the home page

Baptiste Jonglez 10 years ago
parent
commit
cb211e8383
2 changed files with 13 additions and 1 deletions
  1. 12 0
      peerfinder.py
  2. 1 1
      templates/home.html

+ 12 - 0
peerfinder.py

@@ -41,6 +41,18 @@ def resolve_name(hostname):
     except socket.gaierror:
         return []
 
+
+@app.template_filter()
+def ipaddress_pp(addr):
+    """Pretty-print an IP address"""
+    a = IPAddress(addr)
+    try:
+        # Handle v4-mapped addresses
+        return a.ipv4()
+    except netaddr.AddrConversionError:
+        return a.ipv6()
+
+
 class Target(db.Model):
     """Target IP to ping"""
     id = db.Column(db.Integer, primary_key=True)

+ 1 - 1
templates/home.html

@@ -22,7 +22,7 @@ latency from various points in the network towards you.</p>
 <p>
 <form action="/submit" method="POST">
 <label for="target">Target:</label>
-<input type="text" name="target" id="target" value="{{ request.remote_addr }}"/><br />
+<input type="text" name="target" id="target" value="{{ request.remote_addr|ipaddress_pp }}"/><br />
 <input type="checkbox" id="public" name="public" />
 <label for="public">Public?</label><br />
 <input type="submit" value="Launch" />