code: def cmd_gateway_find(network, iface, host, tcp, dport, timeout, verbose):
      
  
      if verbose:
          logging.basicConfig(level=logging.INFO, format='%(message)s')
  
      conf.verb = False
  
      if iface:
          conf.iface = iface
  
      res, unans = srp(Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(pdst=network), timeout=2)
  
      neighbors = set()
  
      for _, pkt in res:
          neighbors.add((pkt['Ether'].src, pkt['Ether'].psrc))
  
      for mac,ip in neighbors:
          if tcp:
              res, unans = srp(Ether(dst=mac)/IP(dst=host)/TCP(dport=dport), timeout=timeout)
          else:
              res, unans = srp(Ether(dst=mac)/IP(dst=host)/ICMP(), timeout=timeout)
          for _,pkt in res:
              if pkt:
                  if verbose:
                      print(pkt.show())
                  else:
                      print(ip, mac, conf.manufdb._get_manuf(mac))
docs: Try to reach an external IP using any host has a router.
  
      Useful to find routers in your network.
  
      First, uses arping to detect alive hosts and obtain MAC addresses.
  
      Later, create a network packet and put each MAC address as destination.
  
      Last, print the devices that forwarded correctly the packets.
  
      Example:
  
      \b
      # habu.find.gateway 192.168.0.0/24
      192.168.0.1 a4:08:f5:19:17:a4 Sagemcom
      192.168.0.7 b0:98:2b:5d:22:70 Sagemcom
      192.168.0.8 b0:98:2b:5d:1f:e8 Sagemcom