2016-09-07 9 views
0

私は現在ソケットプログラミングを学んでおり、複数のIPアドレスからホスト名を取得したいときに問題が発生しました。成功するには成功しましたが、いくつかのIPアドレス(例2)から取得する必要があります。 これは私のコードです:複数のIPアドレスからホスト名を取得する方法は? Java

package sample.weblog; 
import java.io.*; 
import java.net.*; 
public class SampleWeblog { 

public static void main(String[] args) throws FileNotFoundException, IOException { 
    String ip = null; 
    String theRest = null; 
    String entry = null; 
    int index = 0; 

     FileInputStream fin = new FileInputStream("f:/file1.txt"); 
     Reader in = new InputStreamReader(fin); 
     BufferedReader bin = new BufferedReader(in); 

     for (entry = bin.readLine();entry != null;entry=bin.readLine()){ 
     InetAddress address = InetAddress.getByName(entry); 
     System.out.println(address.getHostName() + " = " + entry); 
     } 
} 
} 

私はtxtファイルにいくつかのIPアドレスを入力します。たとえば、8.8.8.8と208.65.153.238はGoogleとYouTubeです。しかし、私が得る結果は、このようなものです:

output

2番目のIPアドレスは、ホスト名を取得していないのはなぜ? ありがとうございます。

+0

バッファリーダーの代わりにスキャナクラスを使用します。 –

+0

@GovindMadhuねえ、私の問題は、明らかに私のIPアドレスが正しくない、私はyahooに変更し、それが働いている。ご意見ありがとうございます! –

+0

@GovindMadhuなぜですか?理由を述べてください。そしてそれはその質問と何が関係していますか?単に行を読み込むためには、 'BufferedReader.readLine()'で十分であり、この場合にはおそらく好ましいでしょう。 – EJP

答えて

0

getHostNameは逆名検索を行います。これを行うには、インターネット上のサービス(DNS)に名前を取得する必要があります(存在する場合)。逆引き参照がアドレスの所有者によって構成されていないため、ルックアップが失敗する場合もあれば、特定のアドレスのホスト名が存在しない場合もあります。

詳細については、DNS逆引き検索を参照してください。

関連する問題