远程扫描请求_远程端口扫描程序

hacker|
241

求教高手,编写一个linux下端口扫描程序

这里介绍netcat命令检查开放端口

netcat(或nc)是一种命令行工具,可以使用TCP或UDP协议跨网络连接读取和写入数据。使用netcat可以扫描单个端口或者端口范围。

比如,要扫描IP地址192.168.8.51在范围内远程计算机上打开的TCP端口,4000-4004可以进行以下命令:nc -z -v 192.168.8.51 4000-4004

1-z选项指示nc仅扫描打开的端口,并不发送任何数据,并且-v用于获取更多详细信息。运行结果如下:

sl@Li:~/Works/brochain/corsac$ nc -z -v 192.168.8.51 4000-4004

Connection to 192.168.8.51 4000 port [tcp/*] succeeded!

nc: connect to 192.168.8.51 port 4001 (tcp) failed: Connection refused

nc: connect to 192.168.8.51 port 4002 (tcp) failed: Connection refused

nc: connect to 192.168.8.51 port 4003 (tcp) failed: Connection refused

nc: connect to 192.168.8.51 port 4004 (tcp) failed: Connection refused

远程端口扫描有哪个工具好呢???

这就要看你的需要了

如果是对单一一个IP进行扫描的话,还是老牌的扫描工具----X—SCAN

如果是对IP段进行扫描的话,建议用superscan

当然,2楼说的S扫描器确实不错,可以有很多的限制,而且准确率不太高。楼主可以看自己的需求选择。

谁有java本地监听与远程端口扫描 源程序

本地端口监听

import java.io.IOException;

import java.net.ServerSocket;

import java.net.Socket;

import java.util.concurrent.ExecutorService;

import java.util.concurrent.Executors;

public class SocketServer

{

private ServerSocket serverSocket;

private ExecutorService executorService;// 线程池

private final int POOL_SIZE = 600;// 单个CPU线程池大小

public SocketServer() throws IOException

{

serverSocket = new ServerSocket(9888);//监听的端口号

// Runtime的availableProcessor()方法返回当前系统的CPU数目.

executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() * POOL_SIZE);

System.out.println("服务器启动");

}

public void service()

{

while (true)

{

Socket socket = null;

try

{

// 接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接

socket = serverSocket.accept();

executorService.execute(new Handlers(socket));

//这里就是放业务逻辑的地方例如获取数据等等

} catch (Exception e)

{

e.printStackTrace();

System.out.println("socket Exception:" + e);

}

}

}

public static void main(String[] args) throws IOException

{

//Thread thread = new Thread(new PringtThread());

//thread.start();

new SocketServer().service();

}

}

端口扫描代码

import java.io.IOException;

import java.net.Socket;

public class SearchPort implements Runnable

{

public static void main(String[] args)

{

SearchPort searchPort = new SearchPort();

Thread thread = new Thread(searchPort);

thread.start();

}

@Override

public void run()

{

searchPort("192.168.1.2", 0, 9999);

}

public void searchPort(String ip,int begin, int end) {

        // 1-65535

        Socket s = null;

        for (int i = begin; i  end; i++) {

            boolean flag = false;

            try {

                s = new Socket(ip, i);

                flag = s.isConnected();

            } catch (IOException e) {

                // TODO Auto-generated catch block

                // e.printStackTrace();

            }

            if (flag) {

                System.out.println("port " + i + " is open");

                try {

                    s.close();

                } catch (IOException e) {

                    // TODO Auto-generated catch block

                    e.printStackTrace();

                }

            } else {

                // System.out.println("port " + i + " is close");

            }

        }

        //System.out.println("seach port :" + begin + " to " + end + " ok..");

    }

}

第一个端口监听的采用了线程池的技术,当大数据来的时候也不怕(某大型企业的部分源码),第二个例子是端口扫描器,采用了多线程扫描,代码直接复制就可以用的,从10点50分打代码11点半,不容易,望楼主采纳,有什么问题可以问我

如何扫描远程计算机被动打开的端口

扫描某一计算机开放的所有端口可在windows系统输入-netstat-an即可。首先,打开电脑的控制面板,然后在控制面板中找到防火墙,在防火墙设置左边选择点击高级设置,高级安全设置中,我们点击选择左边的入站规则,在右侧栏选择点击新建规则,规则类型选择端口类型,选择tcp协议,特定端口,端口自己规定,比如4444,何时应用规则,默认全选,退出之后,我们就看到创建的入站规则,该端口允许。

0条大神的评论

发表评论