java端口扫描器课程设计_java版端口扫描器

这是一个Java实现的端口扫描器课程设计项目。程序通过创建Socket连接目标IP地址的指定端口来检测端口是否开放。用户可以扫描所有端口或指定端口,并提供了使用示例。
摘要由CSDN通过智能技术生成

package com.hejx.ftp;

import java.net.*;

public class Scanner implements Runnable {

private InetAddress IPAddress;

private int Port;

private Thread allportThread;

public Scanner(String IPAddress, int port) {

try {

this.IPAddress = this.IPAddress.getByName(IPAddress);

this.Port = port;

} catch (Exception e) {

System.out.println("The host does not exist. ");

}

}

public void run() {

try {

Socket TestPort = new Socket(this.IPAddress, this.Port); // if this

// port

// cannot

// been

// connected,

// throw

// a

// exception.

System.out.println(this.Port + ": exist "); // if connected, print

// out.

} catch (Exception e) {

}

}

public static void main(String[] args) {

String str;

str = "TPoI Scanner 1.0 - Network Host Scanner/n ";

str += "Author: T.T (TPoI:http://www.tpoi.net)/n/n ";

str += "Usage: Scanner /n/n ";

str += " List:/n ";

str += " -allport : scan the status of all the ports of the specified host/n ";

str += " -port %0 : scan the status of the specified ports(%0) of the specified host/n/n ";

str += "Examples:/n ";

str += " Scanner -allport www.microsoft.com/n ";

str += " Scanner -port 80 21.64.34.191 ";

if (args.length == 0) {

System.out.println(str);

} else {

args[0] = args[0].toUpperCase().trim();

char switchArgs = args[0].charAt(1);

switch (switchArgs) {

case 'A': {

for (int i = 1; i <= 65535; i++) {

Scanner mainScanner = new Scanner(args[1], i);

if (mainScanner.allportThread.activeCount() > 100)

mainScanner.run();

else {

mainScanner.allportThread = new Thread(mainScanner);

mainScanner.allportThread.start();

}

}

break;

}

case 'P': {

Scanner mainScanner = new Scanner(args[2], java.lang.Integer

.parseInt(args[1], 10));

try {

mainScanner.run();

} catch (Exception e) {

System.out.println("parameter error ");

}

break;

}

default:

System.out.println(str);

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值