Saya mencoba mengembangkan aplikasi web Java (Servlet) yang saya perlukan untuk mendapatkan alamat IP klien.
Tolong jangan anggap ini sebagai pertanyaan duplikat karena saya sudah mencoba semua kemungkinan jawaban yang tersedia di stackoverflow.
Berikut ini adalah kode saya sejauh ini:
1)
String ipAddress = request.getRemoteAddr();
Dalam hal ini sebagian besar tome saya mendapatkan ' Alamat gateway default' (147.120.1.5). bukan alamat ip mesin saya (174.120.100.17).
2)
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
Dalam hal ini sebagian besar tome saya mendapatkan ' Alamat gateway default' (147.120.1.5). bukan alamat ip mesin saya (174.120.100.17).
3)
InetAddress IP=InetAddress.getLocalHost();
System.out.println(IP.getHostAddress());
Dalam hal ini saya mendapatkan alamat IP server (147.120.20.1).
Alamat IP saya di 147.120.100.17.Sekarang saya tidak tahu bagaimana cara mendapatkan alamat IP klien yang sebenarnya. Tolong berikan jawaban.
Terima kasih banyak.
Jika, Anda mencoba untuk mendapatkan alamat IP untuk Dev-environment maka Anda dapat menggunakan ini:-
public String processRegistrationForm(HttpServletRequest request)
{
String appUrl = request.getScheme() + "://"+ request.getLocalAddr();
return appUrl;
}
request.getLocalAddr()
akan mengembalikan alamat IP dari sistem penerima permintaan.
Semoga membantu.
import java.net.UnknownHostException;
/**
* Simple Java program to find IP Address of localhost. This program uses
* InetAddress from java.net package to find IP address.
*
*/
public class IPTest {
public static void main(String args[]) throws UnknownHostException {
InetAddress addr = InetAddress.getLocalHost();
//Getting IPAddress of localhost - getHostAddress return IP Address
// in textual format
String ipAddress = addr.getHostAddress();
System.out.println("IP address of localhost from Java Program: " + ipAddress);
//Hostname
String hostname = addr.getHostName();
System.out.println("Name of hostname : " + hostname);
}
}
Keluaran:
IP address of localhost from Java Program: 190.12.209.123
Name of hostname : PCLOND3433