2017-08-07 7 views
-1

私はJavaネットワーキングで初めてです。私はWebサーバーのアクティブなポートを表示できるjavaでプログラムを作った。 ここにある:JAVAネットワークを使用してポートの活動の種類を知るにはどうすればいいですか

import java.net.Socket; 
import java.util.Scanner; 
import java.lang.Exception; 
import java.lang.Thread; 

class helper{ 
    public static void main(String []args){ 
     Scanner s= new Scanner(System.in); 
     int port; 
     System.out.print("Enter web url :"); 
     String url = s.next(); 
     for(port=0;port<65536;port++){ 
      helper2 h = new helper2(url,port); 
      h.start(); 
     } 
     s.close(); 
    } 
} 
class helper2 extends Thread{ 
    int port; 
    String url; 
    helper2(String url,int port){ 
     this.url=url; 
     this.port=port; 
    } 
    private void getStatus(){ 
     try{ 
      Socket skt = new Socket(url,port); 
      System.out.println(port); 
      skt.close(); 
     }catch(Exception e){ 
      //Handle Exception here 
     } 
    } 
    public void run(){ 
     getStatus(); 
    } 

} 

しかし、今、私はそれはTCP/IP、FTP、Telnetまたはポートの他のいくつかの一種であるかのように、ポート番号とともに入力ポートを印刷したいです。私は、ポートタイプを返すJavaネットワーキングにこのような機能があるかどうか、あるいはそれを行うためのプログラムがあるかどうかを知りたかったのです。また、ポートの違いの種類を区別する方法は?私はプログラミングの視点ではなく、そのアイデンティティーを提供し、他のプログラミング言語で論理ステートメントとして利用できる基本的な違いを意味します。

トリガー時にポートが何をしているかを返すものがOS自体に存在するはずです。

例: 65536人(ポート)が工場(マシンまたはOS)にあるとします。ある時点では働いており(活動中)、他の人はそうではありません。もし何が起こっているのか(nmapのようなポートスキャン)、何も言わない人は何も言わないでしょう(ヌルまたはアクティブでないシグナルを返します)。そして働いている人は私がこれをやっていると言うでしょう(tcp/ssh、ftp、telnet)を使用します。

私は彼らの反応に追いつき、そのためのプログラムを作りたいと思います。 nmapが実際にどうしているのか知りたいですか? どのようにポートをトリガーし、そのポートの応答は何ですか? さまざまな種類のポート応答を区別する方法は?

+0

これはおそらく、Linuxの 'netstat'のように、あなたのOSのいくつかのツールを使うことでずっと簡単になるでしょう。本当にJavaで行う必要がありますか? – Aaron

+0

何かがある場合、下降の理由を教えてください。 –

答えて

2

FTPとtelnetは、アプリケーション層にあります。 トランスポート層プロトコルがTCPからUDPへのソケットのタイプを変更していることを確認できます(現在はTCPのみをチェックしています)。しかし、アプリケーション層のプロトコルをチェックするためには、各プロトコルの仕組みを知っていなければなりません。

nmapでフルポートスキャンを行うことができます。これは、ネットワークスキャン用のよく知られたツールです。

+0

しかし、私はWindowsマシンとJavaを使用しています。私は見つけることができない方法があるはずです。 –

+0

FTP、HTTPなどの多くのアプリケーションプロトコルがあります。それらをすべて確認することはできません。たぶんあなたはソケットにポートを接続し、そのポートの番号を調べることができます。次に、[this](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml)のようなリストをチェックして、どのサービスがアクティブであるかを把握します。 しかし、私が前に言ったように、それのためのツールがあります。 –

関連する問題