1. 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
2. java 调用接口获取服务器IP和端口号
<%=
request.getservername()%>
服务器的域名
<%=
java.net.inetaddress.getlocalhost().gethostaddress()
%>
服务器的ip地址
<%=request.getserverport()%>
服务器正在运行的端口
3. JAVA怎么获取IP地址
java代码获取ip地址方法是
调用java.net包下面的的InetAddress类获取。
4. java怎么通过域名获取ip地址
importjava.net.InetAddress;
importjava.net.UnknownHostException;
publicclassTestInetAddress{
InetAddressmyIpAddress=null;
InetAddress[]myServer=null;
publicstaticvoidmain(Stringargs[]){
TestInetAddressaddress=newTestInetAddress();
System.out.println("YourhostIPis:"+address.getLocalhostIP());
Stringdomain=www.jb51.net;
System.out.println("Theserverdomainnameis:"+domain);
InetAddress[]array=address.getServerIP(domain);
intcount=0;
for(inti=1;i<array.length;i++){
System.out.println("ip"+i+""+address.getServerIP(domain)[i-1]);
count++;
}
System.out.println("IPaddresstotal:"+count);
}
/**
*获得localhost的IP地址
*@return
*/
(){
try{
myIpAddress=InetAddress.getLocalHost();
}catch(UnknownHostExceptione){
e.printStackTrace();
}
return(myIpAddress);
}
/**
*获得某域名的IP地址
*@paramdomain域名
*@return
*/
publicInetAddress[]getServerIP(Stringdomain){
try{
myServer=InetAddress.getAllByName(domain);
}catch(UnknownHostExceptione){
e.printStackTrace();
}
return(myServer);
}
}