㈠ java Web如何获取客户端的Hostname
在Java web中获取hostname的方法:
使用request对象。用:
request.getHostName();
㈡ java如何获取主机名字
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Demo {
public static void main(String[] args) {
InetAddress a;
try {
a = InetAddress.getLocalHost();
System.out.println("主机名称: " + a.getHostName());
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
我已经测试过了...
㈢ Java网络编程从入门到精通(5):使用InetAddress类的getHostName方法获得域
该方法可以得到远程主机的域名 也可以得到本机名 getHostName方法的定义如下
publicStringgetHostName()
下面是三种创建InetAddress对象的方式 在这三种方式中 getHostName返回的值是不同的
使用getLocalHost方法创建InetAddress对象
如果InetAddress对象是用getLocalHost方法创建的 getHostName返回的是本机名 如下面的代码所示
InetAddressaddress=InetAddress getLocalHost();System out println(address getHostName());//输出本机名
使用域名创建InetAddress对象
用域名作为getByName和getAllByName方法的参数调用这两个方法后 系统会自动记住这个域名 当调用getHostName方法时 就无需再访问DNS服务器 而是直接将这个域名返回 如下面的代码所示
InetAddressaddress=InetAddress getByName( );System out println(address getHostName());//无需访问DNS服务器 直接返回域名
使用IP地址创建InetAddress对象
使用IP地址创建InetAddress对象时(getByName getAllByName和getByAddress方法都可以通过IP地址创建InetAddress对象) 并不需要访问DNS服务器 因此 通过DNS服务器查找域名的工作就由getHostName方法来完成 如果这个IP地址不存在或DNS服务器不允许进行IP地址和域名的映射 getHostName方法就直接返回这个IP地址 如下面的代码所示
InetAddressaddress=InetAddress getByName( );System out println(address getHostName());//需要访问DNS服务器才能得到域名InetAddressaddress=InetAddress getByName( );//IP地址不存在System out println(address getHostName());//直接返回IP地址
从上面的三种情况可以看出 只有通过使用IP地址创建的InetAddress对象调用getHostName方法时才访问DNS服务器 在其他情况 getHostName方法并不会访问DNS服务器 而是直接将域名或本机名返回 下面的代码演示了在不同情况下如何使用getHostName方法 并计算了各种情况所需的毫秒数
package mynet;import *;publicclass DomainName{publicstaticvoidmain(String[]args)throwsException{longtime= ;//得到本机名InetAddressaddress =InetAddress getLocalHost();System out println( 本机名 +address getHostName());//直接返回域名InetAddressaddress =InetAddress getByName( );time=System currentTimeMillis();System out print( 直接得到域名 +address getHostName());System out println( 所用时间 +String valueOf(System currentTimeMillis() time)+ 毫秒 );//通过DNS查找域名InetAddressaddress =InetAddress getByName( ); System out println( address : +address );//域名为空time=System currentTimeMillis();System out print( 通过DNS查找域名 +address getHostName());System out println( 所用时间 +String valueOf(System currentTimeMillis() time)+ 毫秒 ); System out println( address : +address );//同时输出域名和IP地址}}
运行结果
本机名 ComputerName直接得到域名 所用时间 毫秒address :/ 通过DNS查找域名 bigip o所用时间 毫秒address :bigip o/
lishixin/Article/program/Java/hx/201311/26413
㈣ java如何获取机器名
java获取机器名,主要是使用InterAddress类,如下代码:
packagecom.qiu.lin.he;
importjava.net.InetAddress;
publicclassCeshi{
publicstaticvoidmain(String[]args){
InetAddressaddr=null;
Stringaddress="";
try{
addr=InetAddress.getLocalHost();//新建一个InetAddress类
address=addr.getHostName().toString();//获得本机名称
}catch(Exceptione){
e.printStackTrace();
}
System.out.println(address);
}
}
结果如下:
㈤ 为什么在JAVA中使用SOCKET无法获得HOSTNAME
getInetAddress().getHostName();
ip是可以得到的,MAc地址 没试过 应该是可以的