java实现端口扫描
实现原理
通过能否正常建立socket连接,来判断端口是否开启。
输入需要扫描的端口范围,通过开启多线程来实现快速扫描。
代码实现
package com.it1997;import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.CountDownLatch;public class PortScaner {public static void main(String[] args) throws InterruptedException {String host = "it1997.com";int startPort =1;int endPort = 10000;int step = Math.round(endPort/500)+1;for(int i=1;i<step;i++){int start = startPort+(i-1)*500;int end = startPort+i*500;System.out.println("正在扫描"+start+"-"+end);SP(host,start,end);}}public static void SP(String host,int startPort,int endPort) throws InterruptedException {List<Integer> portList = new ArrayList<>();final CountDownLatch latch = new CountDownLatch(endPort-startPort+1);for (int port = startPort; port <= endPort; port++) {int finalPort = port;//System.out.println(port);Thread thread = new Thread(new Runnable() {@Overridepublic void run() {Socket socket = new Socket();try {socket.connect(new InetSocketAddress(host, finalPort));System.out.println("端口" + finalPort + "开放");portList.add(finalPort);} catch (Exception e) {//e.printStackTrace();// System.out.println("端口" + finalPort + "未开放");}latch.countDown();}});thread.start();}latch.await();portList.sort(new Comparator<Integer>() {@Overridepublic int compare(Integer o1, Integer o2) {return o1.compareTo(o2);}});}
}
java实现端口扫描相关推荐
- java局域网 端口扫描_java 如何端口扫描出ssh端口?
在centos 7上测试了一下,比较简单粗暴.代码如下 import java.io.IOException; import java.io.InputStreamReader; import jav ...
- java 扫描tcp端口号_多线程TCP端口扫描 java实现
界面部分: import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt. ...
- [Java]ping或扫描端口的工具类
2019独角兽企业重金招聘Python工程师标准>>> import java.io.BufferedReader; import java.io.IOException; impo ...
- java 监听本地端口_JAVA本地监听与远程端口扫描
摘 要 随着Internet的不断发展,信息技术已成为社会进步的巨大推动力.不管是存储于服务器里还是流通于Internet上的信息都已成为一个关系事业成败的关键,这就使保证信息的安全变得格外重要.本地 ...
- java udp ip端口 设置_UDP端口扫描Java只找到1个开放的UDP端口
我对端口扫描有一个分歧.我在 Java中扫描一些IP地址的UDP端口.在我的程序中(假设一切正常)我只能找到一个开放的UDP端口.在另一方面端口扫描"nmap"我得到4个开放的UD ...
- Java笔记-Java端口扫描功能(含TCP包分析以及原理)
端口扫描主要是扫描其TCP端口.因为他有三次握手,握上了,如果有加密才进行传输层的加密. 写个程序,去连接那个端口,能握手,就说明端口是开着的. 关于UDP的端口扫描,有但意义不是很大,因为udp不会 ...
- 黑客渗透入门教程 第一课:粗暴的端口扫描
很多人想学黑客知识,却不知如何入门,网上的教程也太繁琐,小白看了也头疼,那还是我来写黑客系列入门教程吧,跟着我做,你能黑客入门的. 端口扫描是指发送一组扫描消息,了解其提供的计算机网络服务类型(这些网 ...
- jni 调用sock_raw -- 端口扫描
Android NDK学习之第一个实例---端口扫描 为什么要写一个端口扫描的程序,Java来写不是很方便吗?因为我也没有想到什么例子能够方便的来练习.于是想到以前找到的端口扫描的C代码,于是想用他们 ...
- 使用Nmap进行端口扫描和服务识别
使用Nmap进行端口扫描和服务识别 第1章 Nmap的简介[1] Nmap ("Network Mapper(网络映射器)") 是一款开放源代码的 网络探测和 ...
- UDP 端口扫描 - Nmap
0x00:简介 nmap 在二层做主机发现时使用的参数是 sn(ping 扫描,不做端口扫描).在三层做主机发现时也是使用的 sn 参数,这里二三层都用的 sn 参数,而具体使用的是二层协议 arp ...
最新文章
- 在Ubuntu 14.04 64bit中永久添加DNS的方法
- window下使用虚拟机安装Linux操作系统CentOS
- html dom 高级,DOM 高级工程师不完全指南
- 北卡教堂山计算机科学专业,UNC的CS「北卡罗来纳大学教堂山分校计算机科学系」...
- python 3解释器_Python3解释器
- Fiddler + 夜神模拟器 APP接口调试
- Elasticsearch 深入3
- 插画素材 | 圣诞节设计离不了!
- (已解决)报错:collect2 error ld returned 1 exit status
- 在AndroidMenifest动态引用ApplicationId,解决INSTALL_FAILURE_CONFLICTION_PROVIDER
- OneZero第四周第一次站立会议(2016.4.11)
- 谷歌经典bert模型从下载源码到运行成功
- [linux虚拟机] 使用yum命令时,解析不了yum源,Cannot find a valid baseurl for repo: base/7/x86_6
- P6-Vue3后台管理系统-构建业务组件连通公共组件
- 国外LEAD网站采集你会了吗
- 系统服务(daemons)
- css3 只给左上,右上,左下,右下设置圆角属性
- OCR项目实战(一):手写汉语拼音识别(Pytorch版)
- [samba]Samba服务器架设
- Mouse without Borders 两台win11电脑共享鼠标键盘
热门文章
- Python编写九九乘法表代码以及解决方案
- 解决Flutter运行IOS报错:Podfile is out of date
- 虚幻学习4---制作实时逼真的毛发【笔记】
- 如何阅读MySQL源码
- Windows Server 2008 R2远程桌面服务配置和授权激活
- python3解密栅栏密码的正确方法
- latex生成pdf中文标签乱码pdf复制乱码
- Logistic回归公式推导和代码实现和Python中的sklearn.linear_model.LogisticRegression 的参数
- linux怎样使用小米线刷工具,小米线刷工具推荐及使用教程
- 手机怎么解决同ip多账号_原神手游如何多开刷初始号赚钱技巧攻略 | 兔子IP