I have tried several Geocoding IP API or tools but found that the Lat/Long output is same for all addresses in the same city, which could not meet my needs. Can anyone suggest a better way to geocode IP addresses at a higher resolution?
IP addresses often don't correspond to the location of a user's machine. For example, right now I'm in Vermont, but two IP geocoding APIs I just checked place me in California. You'll see other people make similar remarks, for example here and here.
Aside from the occasional gross inaccuracy, I suggest that IP addresses are also too imprecise to be meaningful below the city level. It's like throwing a beach ball at a dart board: there's no real way to say exactly where the beach ball hit.
Check out this great answer to a GIS StackExchange question for more details on (im)precision of IP geocoding.