質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

1591閲覧

sysout絞り込み

chelsea14930321

総合スコア9

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2017/07/07 01:12

編集2022/01/12 10:55

###やっていること
以前質問させていただきました、自社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」のみを出力したいです。どこをどう書き換えればよろしいでしょうか?
追記:名前というのはドメイン名のことです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2017/07/07 01:14

プログラムコードは```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)
chelsea14930321

2017/07/07 01:17

ありがとうございます。修正いたしました
guest

回答1

0

java

1for (;;) { 2 String line = br.readLine(); 3 if (line == null) break; 4 5 if ( "line が 名前: から始まる"true ) { 6 System.out.println(line); 7 } 8}

のようにしたいのでしょうかね。

投稿2017/07/07 01:55

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chelsea14930321

2017/07/07 01:58

そうですね。本当にドメイン名しか必要ないので… if文でできるのでしょうか?
A-pZ

2017/07/07 02:02

文字列の "名前:" から始まるのであればいいですが、名前の部分はドメイン名が入るということですか?
chelsea14930321

2017/07/07 02:03

いえ、違います。 見出しで「名前:」とあって、 名前:[ドメイン名(例:xxx.co.jp)] と表示される感じです
A-pZ

2017/07/07 03:56

であれば、"名前:" から始まるときのみ出力する、で大丈夫だと思います。Stringクラスのメソッドでできるでしょう。
chelsea14930321

2017/07/07 05:50

startsWithメソッドを使ってみたのですが、boolean型なのでtrue/falseしか返してくれません。 charAtで1文字ずつ取り出すのはメンテナンス性上向いていないのでダメでした。 どのようにすればよろしいでしょうか。
swordone

2017/07/07 06:42

それをif文に入れなさい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問