Easier option to query single ipv4 and ipv6

main
_shirenn 2022-11-14 17:04:01 +01:00
parent 24ff9e9584
commit a9d0769fe8
1 changed files with 9 additions and 5 deletions

View File

@ -62,18 +62,18 @@ class LookupModule(LookupBase):
def ip4(self, host, vlan):
"""
Retrieve the first IP addresses of an interface of a device
Retrieve the first IPv4 addresse of an interface of a device
query('ldap', 'ip4', HOST, VLAN)
"""
result = [res for res in self.ip(host, vlan) if ipaddress.ip_address(res).version == 4 ]
result = [ res for res in self.ip(host, vlan) if ipaddress.ip_address(res).version == 4 ]
return result[0]
def ip6(self, host, vlan):
"""
Retrieve IP addresses of an interface of a device
query('ldap', 'ip', HOST, VLAN)
Retrieve the first IPv6 addresse of an interface of a device
query('ldap', 'ip6', HOST, VLAN)
"""
result = [res for res in self.ip(host, vlan) if ipaddress.ip_address(res).version == 6 ]
result = [ res for res in self.ip(host, vlan) if ipaddress.ip_address(res).version == 6 ]
return result[0]
def all_ip(self, host):
@ -157,6 +157,10 @@ class LookupModule(LookupBase):
result = self.query(*terms[1:])
elif terms[0] == 'ip':
result = self.ip(*terms[1:])
elif terms[0] == 'ip4':
result = self.ip4(*terms[1:])
elif terms[0] == 'ip6':
result = self.ip6(*terms[1:])
elif terms[0] == 'all_ip':
result = self.all_ip(*terms[1:])
elif terms[0] == 'cn':