2014-04-01 179 views
0

我在我的活動及其工作中使用以下工具。但我得到的輸出(主機名)不是我想要的方式。例如,如果我需要找到谷歌的IP,我得到它像www.google.com/74.125.224.72Android:需要幫助從主機名獲取IP地址

應該就像74.125.224.72

我是新來的Android,請幫助我。這裏是我的代碼:

String host = editText1.getText().toString(); 
try { 
    InetAddress[] hostInetAddress = InetAddress.getAllByName(host); 
    String all = ""; 
    for(int i = 0; i < hostInetAddress.length; i++){ 
     all = all + hostInetAddress[i].toString() + "\n"; 
    } 
    textInetAddress.setText(all); 
} 
+0

用斜槓(/)分割值...如果所有的地址都像你說的那樣... – Vamshi

+0

我應該在'all'字符串中使用它嗎? –

+0

你在哪裏獲得價值? – Vamshi

回答

1

用你的名字/ IP_ADDRESS:

InetAddress address = InetAddress.getByName(new URL(urlString).getHost()); 
//it will fetch name/ip_address (eg. www.google.com/74.125.224.72) of the url you enter 

,然後只得到IP_ADDRESS使用:

String ip = address.getHostAddress(); 
//it will fetch only ip_address (eg. "74.125.224.72") from the abouve url 

所以不是

for(int i = 0; i < hostInetAddress.length; i++){ 
        all = all + hostInetAddress[i].toString() + "\n"; 
       } 

使用下面的代碼

for(int i = 0; i < hostInetAddress.length; i++){ 
        all = all + hostInetAddress[i].getHostAddress().toString() + "\n"; 
       } 
+0

而不是 'for(int i = 0; i Jigar

+0

謝謝,這就是我一直在尋找的。像魅力一樣工作。 :) –

0

試試這個:

String[] ip = all.split("/"); 
textInetAddress.setText(ip[1]); 
+0

這沒有奏效,我嘗試了兩個變量的IP, CharSequence [] ip = null; 私人的CharSequence [] IP 創建強制關閉 –

+0

採取的String []不爲CharSequence [] – Vamshi

+0

我做到了,這是創建一個錯誤 'textInetAddress.setText(IP [1]);' 因此,要解決這個問題,我需要設置變量CharSequence [] –

0

無需爲loop.This會工作。
hostInetAddress [0] .getHostAddress();

+0

Thnx,這解決了這個問題。 'hostInetAddress [i] .getHostAddress()' –