diff --git a/netbox/ipam/tables/ip.py b/netbox/ipam/tables/ip.py
index d285927d3..03365a442 100644
--- a/netbox/ipam/tables/ip.py
+++ b/netbox/ipam/tables/ip.py
@@ -309,8 +309,8 @@ class IPRangeTable(TenancyColumnsMixin, NetBoxTable):
#
class IPAddressTable(TenancyColumnsMixin, NetBoxTable):
- address = tables.Column(
- linkify=True,
+ address = tables.TemplateColumn(
+ template_code=IPADDRESS_LINK,
verbose_name=_('IP Address')
)
vrf = tables.TemplateColumn(
diff --git a/netbox/ipam/tables/template_code.py b/netbox/ipam/tables/template_code.py
index cc3a344bc..14b73b28d 100644
--- a/netbox/ipam/tables/template_code.py
+++ b/netbox/ipam/tables/template_code.py
@@ -25,18 +25,23 @@ PREFIX_LINK_WITH_DEPTH = """
{% endif %}
""" + PREFIX_LINK
+# Annotate the ID of each IP address for copy-to-clipboard functionality
IPADDRESS_LINK = """
-{% if record.address or record.start_address %}
- {{ record }}
+{% if record.address %}
+ {{ record }}
+{% elif record.start_address %}
+ {{ record }}
{% elif perms.ipam.add_ipaddress %}
- {{ record.title }}
+ {{ record.title }}
{% else %}
- {{ record.title }}
+ {{ record.title }}
{% endif %}
"""
IPADDRESS_COPY_BUTTON = """
-{% copy_content record.pk prefix="ipaddress_" %}
+{% if record.address %}
+ {% copy_content record.pk prefix="ipaddress_" %}
+{% endif %}
"""
IPADDRESS_ASSIGN_LINK = """