panmail hmmm, the images you posted are inaccessible for me now, could you please just re-post it?
Personally, I'm not leaning towards this solution because offline IP libraries can't be synchronised and updated in real time, which can produce inaccurate matches. And this method also requires local dependencies, which is a bad solution and does not comply with the SOLID principle, causing a considerable impact on the extensibility.
But, thanks for the suggestion.