###やっていること
以前質問させていただきました、自社HPにアクセスしてきたIPアドレスからホスト名を割り出すプログラムを作成するのは出来ました。ログファイルを読み込んで正規表現でIPアドレスを抜き取り、そこからDNSを使ってホスト名をsysyoutしています。
このプログラムを使って何をしたいかというと、自社HPにアクセスしてくれた会社様へのアタックリスト的なものを作りたいので、必要なのはhoge.comやhoge.●●.jpなどのサイト名のみで十分です。今現状eclipseのコンソールにはサーバ、Addressといった不要な情報までsysyoutされてしまいます。
###ソースコード、コンソール表示例
java
1package main; 2 3import java.io.*; 4import java.net.UnknownHostException; 5import java.util.*; 6import java.util.regex.Matcher; 7import java.util.regex.Pattern; 8 9public class DomainInfoMain { 10 public static void main(String[] args) throws Exception{ 11 Set<String> set = new LinkedHashSet<String>(); 12 Pattern p = Pattern.compile("([1-9][0-9]*\\.){3}[1-9][0-9]*"); 13 try { 14 File file = new File("C:\\Users\\-会社名-\\Desktop\\ssl_request_log.bak"); 15 FileReader filereader = new FileReader(file); 16 BufferedReader br = new BufferedReader(filereader); 17 while(true){ 18 String line = br.readLine(); 19 if (line == null) { 20 break; 21 } 22 23 Matcher m = p.matcher(line); 24 if (m.find()) { 25 set.add(m.group()); 26 } 27 } 28 br.close(); 29 } catch (FileNotFoundException e) { 30 throw new RuntimeException(e); 31 } catch (IOException e) { 32 throw new RuntimeException(e); 33 } 34 35 for(String tmp : set){ 36 try { 37// System.out.println("ホスト名:" + InetAddress.getByName(tmp).getHostName()); 38 Runtime runtime = Runtime.getRuntime(); 39 Process exec = runtime.exec("nslookup " + tmp); 40 exec.waitFor(); 41 InputStream is = exec.getInputStream(); //標準出力 42 printInputStream(is); 43 44 } catch (UnknownHostException e) { 45 e.printStackTrace(); 46 } 47 } 48 } 49 public static void printInputStream(InputStream is) throws IOException { 50 System.out.println("============="); 51 BufferedReader br = new BufferedReader(new InputStreamReader(is,"Shift_JIS")); 52 try { 53 for (;;) { 54 String line = br.readLine(); 55 if (line == null) break; 56 System.out.println(line); 57 } 58 } finally { 59 br.close(); 60 } 61 } 62} 63
◆コンソール
=============
サーバー: xxxm.me
Address: 1xx.xxx.0.x
名前: 102.xx.xxx.49.rev.xxx.jp
Address: 49.xxx.64.xxx
=============
サーバー: xxxxx.xx
Address: 1xx.xxx.0.x
=============
サーバー: xxxxxx.xxx
Address: xx2.xxx.0.x
名前: xxxxxx.com
Address: 1xx.x.2xx.xxx
###やりたいこと
このコンソール、ないしコマンドプロンプトにてjavaファイルを実行する際に、「名前:XXXXXX」のみを出力したいです。どこをどう書き換えればよろしいでしょうか?
追記:名前というのはドメイン名のことです。
よろしくお願いいたします。