I am not sure I understand the question.
Why would you query the provider? Why not store this information globally in a simple cache or file?
It seems to me that you are making things more complicated than they have to be.
Jacob Tanner, Jul 11, 2013