granted, but neither is doing a huge number of lookups via a freely available webservice :)
that said, OpenStreetMap is certainly much more data than what you actually need -- they have not just country borders, but also, well, street maps.
that said, if you successfully apply a rough filter, maybe you can cut down the number of external lookups to something reasonable
the place I would start would be to just draw some rectangles over a map of Germany -- one around the outside, so anything outside that rectangle is definitely not in Germany; and then some in the inside, where anything in those rectangles is definitely in Germany.
if something is not in the outside rectangle, you can safely discard it without looking further
if it's in one of the inside rectangles, you can safely include it without looking further
only things that are not outside the outside rectangle, and not inside one of the inside rectangles, need have further work done
that should cut down the dataset requiring more intensive investigation quite a lot.