You should stop redirecting based on IP address.
- IP address geo location is not always accurate.
- When somebody visits another country, they still want to be able to view your site in their language
- Googlebot will have a hard time crawling all your languages since its crawling is almost all done from the US. Not redirecting for Googlebot when you redirect for visitors is considered "cloaking" and could get your site penalized.
Instead, you should put a prominent notice on your site (this particular message should be written in Japanese and should link to your Japanese site):
It looks like you are located in Japan, click here to view this page in Japanese.
I do something similar on my site. Instead of using ip geo-location, I look at the "Accept-Language" header that is sent with the request. If it doesn't match the language of the page, I put a notice up like the one above
This page is also available in Japanese, click here to read it in Japanese.
Similar to the ip geo location, the accept-language header is often not set correctly. Especially for non-English users that end up downloading browsers that default to English. I suggest that you don't use it to redirect.
You might be interested in this full guide to structuring your site for multi-lingual or multi-nationalfull guide to structuring your site for multi-lingual or multi-national. It talks about this issue.