㈠ 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地址 沒試過 應該是可以的