请问我在JSP页面中使用如下语句:
System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
得到的结果相同(局域网内试验的结果)。
那么getRemoteAddr()和getRemoteHost()到底有什么区别?
我的目的就是要得到发出request的机器的IP地址和主机名字,但是两个得到的值是一样的,都是IP,
我到底要怎么样才能获得IP和主机名字 。
System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
得到的结果相同(局域网内试验的结果)。
那么getRemoteAddr()和getRemoteHost()到底有什么区别?
我的目的就是要得到发出request的机器的IP地址和主机名字,但是两个得到的值是一样的,都是IP,
我到底要怎么样才能获得IP和主机名字 。
getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址
DNS.GetHostByAddress将ip地址转换为主机名称
import java.net.UnknownHostException;
import java.util.Properties;
import java.util.Set;
public class TestSystemProperties {
public static void main(String [] args){
InetAddress netAddress = getInetAddress();
System.out.println("host ip:" + getHostIp(netAddress));
System.out.println("host name:" + getHostName(netAddress));
}
public static InetAddress getInetAddress(){
try{
return InetAddress.getLocalHost();
}catch(UnknownHostException e){
System.out.println("unknown host!");
}
return null;
}
public static String getHostIp(InetAddress netAddress){
if(null == netAddress){
return null;
}
String ip = netAddress.getHostAddress(); //get the ip address
return ip;
}
public static String getHostName(InetAddress netAddress){
if(null == netAddress){
return null;
}
String name = netAddress.getHostName(); //get the host address
return name;
}
}