当前位置: 源码素材网 » Java教程 » 详情页

Java扫描给定主机的TCP 端口

  •   时间:2019-02-11
  • 概述:扫描端口

Java扫描给定主机的TCP 端口,通常我们想知道自己的主机和Internet 上的某一主机的各个TCP 端口是否提供某些服务,为了获知某一主机是否在某一端口提供服务,本例通过编程来扫描给定的主机的TCP 端口。运行程序,并在后面加上主机地址作为参数,就可以获得重写后的此主机的各个TCP 端口信息,例如输入参数159.226.5.89,结果如图所示:

Java扫描给定主机的TCP 端口

实现方法:java.net.Socket 类是执行客户端TCP 操作的基本Java 类。利用Socket 类的方法建立和撤销连接。Socket 类的构造器中hosts 参数可以是一个InetAddress 或者一个String 对象,Ports 为一整型值,大小变化为从1 到65535。因为这个Socket 构造器不仅仅能建立一个Socket 对象同时也去连接远端主机的socket 端口,使用这个对象能确定是否连接特定端口是否允许。程序代码:

1.编写usePortScanner 类的基本框架,该类仅有main()方法,该方法建立socket 连接,扫描给定主机的TCP 端口。

2.编写usePortScanner 类,代码如下:

import java.net.*;
import java.io.*;
public class usePortScanner
{
  	public static void main(String[] args)
  	{
    		String host = "localhost";
    		if (args.length > 0)
    		{
      			host = args[0];
    		}
    		//扫描主机端口
    		for (int i = 1; i < 1024; i++)
    		{
      			try
      			{
      			//建立Socket
        			Socket s = new Socket(host, i);
        			//输出端口信息
        			System.out.println("There is a server on port " + i + " of " + host);
      			}
      			catch (UnknownHostException e)
      			{
        			System.err.println(e);
        			break;
      			}
      			catch (IOException e)
      			{
      				// must not be a server on this port
      			}
    		}
  	}
}

    相关声明:

      若“Java扫描给定主机的TCP 端口”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。