'Python Dictionary of Fortigate Interfaces to Find Matching Interface to Specified IP

This data is sanitized. Can someone help me with a way to take this source ip, loop through the dictionary "name", "ipv4_addresses" keys for subkeys "ip" and "cidr_netmask" to find the one that is true and store the "name" in a variable? This should be matching up to Vlan3, 10.1.53.252/24. This is giving me a headache.

import ipaddress
source_ip = '10.1.53.100'
matching_interface_name = ipaddress.ip_address(source_ip) in ipaddress.ip_network('10.1.53.252/24')
interfaces = {
   "http_method":"GET",
   "results":[
      {
         "name":"any",
         "valid_in_policy":true,
         "icon":"fa-square-o"
      },
      {
         "name":"port1",
         "type":"physical",
         "is_physical":true,
         "valid_in_policy":true,
         "is_available_for_acl":true,
         "is_ipsecable":true,
         "is_routable":true,
         "is_ha_heartbeatable":true,
         "is_ha_monitorable":true,
         "is_ha_mgmt_candidate":true,
         "supports_fortilink":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "supports_transceiver":true,
         "real_interface_name":"port1",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"undefined",
         "monitor_bandwidth":false,
         "ipv4_addresses":[
            {
               "ip":"192.168.100.91",
               "netmask":"255.255.255.0",
               "cidr_netmask":24
            }
         ],
         "mac_address":"00:09:0f:01:00:00",
         "link":"down",
         "duplex":"half",
         "port_speed":"auto",
         "media":"fiber",
         "icon":"ftnt-interface-sfp-down"
      },
      {
         "name":"mgmt1",
         "type":"physical",
         "is_physical":true,
         "is_dedicated_mgmt":true,
         "is_available_for_acl":true,
         "is_dedicate_capable":true,
         "is_routable":true,
         "is_ha_heartbeatable":true,
         "is_ha_monitorable":true,
         "supports_fortilink":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "real_interface_name":"mgmt1",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"undefined",
         "monitor_bandwidth":false,
         "ipv4_addresses":[
            {
               "ip":"192.168.1.95",
               "netmask":"255.255.255.0",
               "cidr_netmask":24
            }
         ],
         "mac_address":"00:09:0f:09:04:04",
         "link":"down",
         "duplex":"half",
         "port_speed":"auto",
         "media":"rj45",
         "icon":"ftnt-interface-rj45-down"
      },
      {
         "name":"Phones",
         "type":"vap-switch",
         "is_used_by_vlan":true,
         "is_wifi":true,
         "valid_in_policy":true,
         "supports_ssid":true,
         "is_ipsecable":true,
         "is_routable":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "real_interface_name":"Phones",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"lan",
         "monitor_bandwidth":false,
         "ipv4_addresses":[
            {
               "ip":"10.3.171.254",
               "netmask":"255.255.255.0",
               "cidr_netmask":24
            }
         ],
         "mac_address":"00:f3:58:b7:2c:15",
         "link":"up",
         "port_speed":"auto",
         "ssid":"Phones",
         "icon":"fa-wifi-up"
      },
      {
         "name":"Outside",
         "type":"vlan",
         "is_vlan":true,
         "valid_in_policy":true,
         "is_available_for_acl":true,
         "is_ipsecable":true,
         "is_routable":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "real_interface_name":"Outside",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "description":"Internet",
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"lan",
         "monitor_bandwidth":true,
         "ipv4_addresses":[
            {
               "ip":"172.18.39.71",
               "netmask":"255.255.255.248",
               "cidr_netmask":29
            }
         ],
         "mac_address":"00:19:1f:19:10:10",
         "link":"up",
         "vlan_interface":"",
         "vlan_id":209,
         "port_speed":"auto",
         "icon":"ftnt-vlan-up"
      },
      {
         "name":"Vlan3",
         "type":"vlan",
         "is_vlan":true,
         "valid_in_policy":true,
         "is_available_for_acl":true,
         "is_ipsecable":true,
         "is_routable":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "real_interface_name":"Vlan3",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "description":"Test",
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"lan",
         "monitor_bandwidth":false,
         "ipv4_addresses":[
            {
               "ip":"10.1.53.252",
               "netmask":"255.255.255.0",
               "cidr_netmask":24
            }
         ],
         "mac_address":"00:09:1f:19:00:20",
         "link":"up",
         "vlan_interface":"Uplink",
         "vlan_id":3,
         "port_speed":"auto",
         "icon":"ftnt-vlan-up"
      },
      {
         "name":"Vlan201",
         "type":"vlan",
         "is_vlan":true,
         "valid_in_policy":true,
         "is_available_for_acl":true,
         "is_ipsecable":true,
         "is_routable":true,
         "supports_dhcp":true,
         "is_explicit_proxyable":true,
         "supports_device_id":true,
         "supports_fortitelemetry":true,
         "real_interface_name":"Vlan201",
         "vdom":"root",
         "is_system_interface":true,
         "status":"up",
         "in_bandwidth_limit":0,
         "out_bandwidth_limit":0,
         "description":"Vlan3",
         "dhcp4_client_count":0,
         "dhcp6_client_count":0,
         "role":"lan",
         "monitor_bandwidth":true,
         "ipv4_addresses":[
            {
               "ip":"10.1.5.155",
               "netmask":"255.255.255.0",
               "cidr_netmask":24
            }
         ],
         "mac_address":"00:09:0f:09:00:20",
         "link":"up",
         "vlan_interface":"Uplink",
         "vlan_id":201,
         "port_speed":"auto",
         "icon":"ftnt-vlan-up"
      },
      {
         "name":"virtual-wan-link",
         "vdom":"root",
         "is_sdwan_zone":true,
         "valid_in_policy":false,
         "status":"down",
         "type":"sdwan-zone",
         "members":[
            
         ],
         "icon":"ftnt-virtual-wan-link-down-disabled",
         "link":"down"
      }
   ],
   "vdom":"root",
   "path":"system",
   "name":"available-interfaces",
   "status":"success",
   "serial":"12345",
   "version":"v1.1.1.1",
   "build":1111
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source