code: def __getIp6Address(self, addressType):
          
          addrType = ['link local', 'global', 'rloc', 'mesh EID']
          addrs = []
          globalAddr = []
          linkLocal64Addr = ''
          rlocAddr = ''
          meshEIDAddr = ''
  
          addrs = self.__sendCommand('ipaddr')
          for ip6Addr in addrs:
              if ip6Addr == 'Done':
                  break
  
              ip6AddrPrefix = ip6Addr.split(':')[0]
              if ip6AddrPrefix == 'fe80':
                  # link local address
                  if ip6Addr.split(':')[4] != '0':
                      linkLocal64Addr = ip6Addr
              elif ip6Addr.startswith(self.meshLocalPrefix):
                  # mesh local address
                  if ip6Addr.split(':')[4] == '0':
                      # rloc
                      rlocAddr = ip6Addr
                  else:
                      # mesh EID
                      meshEIDAddr = ip6Addr
              else:
                  # global ipv6 address
                  if ip6Addr != None:
                      globalAddr.append(ip6Addr)
                  else:
                      pass
  
          if addressType == addrType[0]:
              return linkLocal64Addr
          elif addressType == addrType[1]:
              return globalAddr
          elif addressType == addrType[2]:
              return rlocAddr
          elif addressType == addrType[3]:
              return meshEIDAddr
          else:
              pass
docs: get specific type of IPv6 address configured on thread device
  
          Args:
              addressType: the specific type of IPv6 address
  
              link local: link local unicast IPv6 address that's within one-hop scope
              global: global unicast IPv6 address
              rloc: mesh local unicast IPv6 address for routing in thread network
              mesh EID: mesh Endpoint Identifier
  
          Returns:
              IPv6 address string