The domain is the set of all possible inputs #x# to a function that give a valid result. Ie, all of the numbers you can replace #x# with and not break any algebraic rules is the domain.
Here, we note that we have the term #1/(x+6)^2# in our function. We know that we cannot divide by zero, so it follows that #(x+6)^2 ne 0#. This implies that #x ne -6#. Thus, #x = -6# is not included in our domain. All other values of #x# provide a legal answer, however, so our domain is #(-infty, -6)cup(-6, infty)#.
The range is the set of all possible outputs of a function. That is, if you plug in every #x# from the domain into #f(x)#, all the results you get consist of the range.
We note that when #x# gets very large, the denominator of #1/(x+6)^2# gets very large, making the term itself quite small. Thus, #f(x)# will get very near #2# with large values of #x#.
With values of #x# very close to #-6#, we find that the denominator of #1/(x+6)^2# gets very small, making the term evaluate to a large number. For closer and closer values of #x# to #-6#, #f(x) = 2 - 1/(x+6)^2# begins to get very negative, tending toward negative infinity.
Thus, our function covers all values between #-infty# and #2#, though it never quite reaches #2#. (And it cannot reach #-infty#.) So our range is #(infty, 2)#.
A graph of this function reveals this behavior.
graph{2 - 1/(x+6)^2 [-16, 16, -8, 8]}