اگر به درستی در انجمن جاوا مطرح کردید و منظورتون جاوااسکریپت نیست (کلا جاوااسکریپت نمیتونه ip کاربر رو بگیره چون روی مرورگر اجرا میشه، یا باید با جاوا یا php و... ip اون رو بگیرید).
آدرس ip رو نمیتونید هیچ وقت به صورت دقیق بدونید با این حال کدی که پیشنهاد میکنم استفاده کنید:
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null || ipAddress.length()==0 || ipAddress.equals("unknown")) {
ipAddress = request.getRemoteAddr();
}
خط اول سعی میکنه ببینه اگر از proxy استفاده شده، ip کاربری که به proxy اطلاعات رو فرستاده رو بده. هر چند این رو کاملا میشه تغییر داد. شاید بهتر باشه فقط از همین getRemoteAddr استفاده کنید که ip آخرین ارسال کننده (چه proxy server باشه چه NAT server و چه ip static باشه).
در کل شما به ip دقیق فرد که دسترسی ندارید، پس همون getRemoteAddr فکر کنم کفایت کنه.
خب الان که ip رو دارید برای اینکه بدونید از کدوم کشور هست کار ساده ای نیست. شما باید دیتابیس ip های کلی کشورها رو داشته باشید (که برخی سایت ها اینا رو میفروشن، شاید رایگانش هم باشه)
بعد از اینکه از طریق دیتابیس فهمیدید از کدوم کشور هست اونوقت خیلی ساده هدر Location رو به http response اضافه میکنید و آدرس مقصد رو میدید.
پس قسمت مهمش میشه بدست آوردن ip کشورها که باید دیتاش رو داشته باشید