⑴ java 如何把伺服器獲取的ip地址和主機名寫入TXT文件
給你一個方法,自己調一下吧.
host就是主機名
ip就是ip,
filepath就是文件路徑
publicvoidcreateFile(Stringhost,Stringip,Stringfilepath)
{
BufferedWriterbw=null;
try{
bw=newBufferedWriter(newFileWriter(newFile(filepath)));
bw.write("host-name:"+host+",ip:"+ip);
bw.flush();
bw.close();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
⑵ Java網路編程從入門到精通(6):使用getCanonicalHostName方法獲得主機名
getCanonicalHostName方法和getHostName方法一樣 也是得到遠程主機的域名 但它們有一個區別 getCanonicalHostName得到的是主機名 而getHostName得到的主機別名 getCanonicalHostName的定義如下
()
在訪問某些域名時 getCanonicalHostName方法和getHostName方法的返回值是一樣的 這和DNS伺服器如何解釋主機名和主機別名以及它們的設置有關 如通過創建InetAddress對象後 使用getCanonicalHostName方法和getHostName方法返回的結果都是(有時直接返回IP地址 這可能和IBM的DNS伺服器的處理機制有關岩游弊) 如果DNS不允許通過IP地址得到域名 那麼這兩個方法就會返回IP地址來代替域名 getCanonicalHostName方法可以分三種情況來討論
使用getLocalHost創建InetAddress對象
在粗族這種情況下getCanonicalHostName方法和getHostName方法得到的都是本機名
使用域名創建InetAddress對象
在這種情況下 getCanonicalHostName方法是否要訪問DNS伺服器 取決於DNS伺服器如何解釋主機名和主機別名 也就是說 是否在創建InetAddress對象時就將主機名和主機別名都確定了 在前面已經講過 使用域名創建InetAddress對象後 調用getHostName方法不會訪問DNS伺服器 但getCanonicalHostName方法就不一定了 這和DNS伺服器的設置有關 如就需要訪問DNS伺服器 而就不需要訪問DNS伺服器
使用IP地址創建InetAddress對象
在這種情況下 getCanonicalHostName方法和getHostName方法是完全一樣的 也就是說 它們得到的都是主機名 而不是主機別名
之所以要使用主機別名 是因為有時主機名可能比較復雜 如Oracle官方網站的主機名bigip o 因此 為了使用戶訪問網站更方便 就增加了更簡單的主機別名 如 一個主機名可能對應多個主機別名 如也是Oracle的主機別名 在IE的地址欄中輸入和都可以訪問Oracle官方網站 但我們發現 有很多網站通過主機名無法訪問 只有通過一些別名才能訪問 如 只能通磨冊過和兩個主機別名訪問 而不能通過它的主機名 cn來訪問 這是因為在服務端通過HTTP協議做了限制 這個在前面已經討論過了 常式 對比了getCanonicalHostName和getHostName方法在不同情況下的輸出結果
package mynet;import *;publicclass DomainName{publicstaticvoidoutHostName(InetAddressaddress Strings){System out println( 通過 +s+ 創建InetAddress對象 );System out println( 主機名: +address getCanonicalHostName());System out println( 主機別名: +address getHostName());System out println( );}publicstaticvoidmain(String[]args)throwsException{outHostName(InetAddress getLocalHost() getLocalHost方法 );outHostName(InetAddress getByName( ) );outHostName(InetAddress getByName( ) );outHostName(InetAddress getByName( ) );outHostName(InetAddress getByName( ) );}}
運行結果
通過getLocalHost方法創建InetAddress對象主機名:ComputerName主機別名:ComputerName通過創建InetAddress對象主機名:主機別名:通過創建InetAddress對象主機名: cn主機別名:通過 創建InetAddress對象主機名: cn主機別名: cn通過 創建InetAddress對象主機名: 主機別名:
lishixin/Article/program/Java/hx/201311/26659
⑶ java 怎麼根據IP地址獲取主機名
//看看這個代碼如何。
importjava.net.InetAddress;
importjava.net.UnknownHostException;
importjava.util.Properties;
importjava.util.Set;
{
publicstaticvoidmain(String[]args){
InetAddressnetAddress=getInetAddress();
System.out.println("hostip:"+getHostIp(netAddress));
System.out.println("hostname:"+getHostName(netAddress));
Propertiesproperties=System.getProperties();
Set<String>set=properties.stringPropertyNames();//獲取java虛擬機和系統的信息。
for(Stringname:set){
System.out.println(name+":"+properties.getProperty(name));
}
}
(){
try{
returnInetAddress.getLocalHost();
}catch(UnknownHostExceptione){
System.out.println("unknownhost!");
}
returnnull;
}
publicstaticStringgetHostIp(InetAddressnetAddress){
if(null==netAddress){
returnnull;
}
Stringip=netAddress.getHostAddress();//gettheipaddress
returnip;
}
publicstaticStringgetHostName(InetAddressnetAddress){
if(null==netAddress){
returnnull;
}
Stringname=netAddress.getHostName();//getthehostaddress
returnname;
}
}
這個代碼簡單明了,就是調用現成的InetAddress類
⑷ java如何提取url里的域名
方法1:正則
(http://)或者(https://)開頭
往後面匹配三個點,
不會的話網路一波。
然後把最後的點去掉
就可以得到域名
方法2:
將URL字元串轉換為charArray
遍歷 對.(點)的次數進行記數
第三次當前返回下標
用SubString切割字元串獲取域名
⑸ xml配置文件中如何獲取主機名
1、導入所需的Java類庫。
2、創建一個DocumentBuilder對象和載入XML文件。
3、獲取根元素。
4、根據XML的結構,找到對應的節點並獲取其值。
5、現在,您可以使用獲取到的hostname變數進行後續操作了。