java扫描端口(端口扫描器java项目开发)

本篇文章给大家谈谈java扫描端口,以及端口扫描器java项目开发对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

1、如何用java实现tcp connect,tcp syn端口扫描2、修改一个JAVA源程序,使它能扫描指定IP的主机的UDP端口3、请教大神,怎么使用java实现UDP端口扫描4、java扫描局域网的端口5、如何用java语言实现端口扫描器6、有没有用java代码操作nmap进行过端口扫描的

如何用java实现tcp connect,tcp syn端口扫描

connect比较简单,就是用Socket+多线程,每个端口创建一次连接,没连上是不会往下执行的,会抛出异常,网上有源码,都是这个方法。

syn和FIN还不知道咋实现,可以考虑用本地方法。

修改一个JAVA源程序,使它能扫描指定IP的主机的UDP端口

单线程的

import java.net.*;

public class UDP

{

public static void main(String args[])

{

for (int port=0;port=65535;port++) {

try {

DatagramSocket server=new DatagramSocket(port);

server.close();

}

catch(SocketException e) {

System.out.println(“UDP端口”+port+”开放!”);

}

}

}

}

希望能够帮助到你,望采纳!

java扫描端口(端口扫描器java项目开发)

请教大神,怎么使用java实现UDP端口扫描

给你个UDP服务端与客户端的示例:

服务端代码:

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class UDPMulticastServer {

final static int RECEIVE_LENGTH = 1024;

static String multicastHost = “224.0.0.1”;

static int localPort = 9998;

public static void main(String[] args) throws Exception {

InetAddress receiveAddress = InetAddress.getByName(multicastHost);

if (!receiveAddress.isMulticastAddress()) {// 测试是否为多播地址

throw new Exception(“请使用多播地址”);

}

int port = localPort;

MulticastSocket receiveMulticast = new MulticastSocket(port);

receiveMulticast.joinGroup(receiveAddress);

boolean isStop = false;

while(!isStop){

DatagramPacket dp = new DatagramPacket(new byte[RECEIVE_LENGTH], RECEIVE_LENGTH);

receiveMulticast.receive(dp);

String data = new String(dp.getData()).trim(); 

System.out.println(data);

if(“exit”.equals(data)){

System.out.println(“程序退出”);

isStop = true;

}

}

receiveMulticast.close();

}

}

客户端代码:

import java.net.DatagramPacket;

import java.net.InetAddress;

import java.net.MulticastSocket;

public class UDPMulticastClient {

static String destAddressStr = “224.0.0.1”;  

  

    static int destPortInt = 9998;  

    static int TTLTime = 4;  

    public static void main(String[] args) throws Exception {  

      

    InetAddress destAddress = InetAddress.getByName(destAddressStr);  

    if(!destAddress.isMulticastAddress()){//检测该地址是否是多播地址  

             throw new Exception(“地址不是多播地址”);  

    }  

    int destPort = destPortInt;  

    MulticastSocket multiSocket =new MulticastSocket();  

//    int TTL = TTLTime;  

//    multiSocket.setTimeToLive(TTL);  

    byte[] sendMSG = “exit”.getBytes();  

    DatagramPacket dp = new DatagramPacket(sendMSG, sendMSG.length, destAddress  , destPort);  

    multiSocket.send(dp);  

    multiSocket.close();  

}  

}

java扫描局域网的端口

直接上代码:

import java.net.Socket;

import java.text.SimpleDateFormat;

import java.util.Date;

public class PortScanner extends Thread {

private int[] p;

Socket ss = null;

public PortScanner(int[] p) {

this.p = p;

}

public static void main(String[] args) {

for (int i = 0; i  65535; i = i + 100) {

new PortScanner(new int[] { i + 1, i + 100 }).start();

}

}

@Override

public void run() {

for (int i = p[0]; i  p[1]; i++) {

try {

ss = new Socket(“8.8.8.8”, i);

System.out.println(“扫描到端口: ” + i);

} catch (Exception e) {

// System.out.println(“关闭端口: ” + i);

}

}

}

}

如何用java语言实现端口扫描器

使用 DatagramSocket(int port) 建立socket(套间字)服务。

将数据打包到DatagramPacket中去

通过socket服务发送 (send()方法)

关闭资源

public static void main(String[] args) {

DatagramSocket ds = null; //建立套间字udpsocket服务

try {

ds = new DatagramSocket(8999); //实例化套间字,指定自己的port

} catch (SocketException e) {

System.out.println(“Cannot open port!”);

System.exit(1);

}

byte[] buf= “Hello, I am sender!”.getBytes(); //数据

InetAddress destination = null ;

try {

destination = InetAddress.getByName(“192.168.1.5”); //需要发送的地址

} catch (UnknownHostException e) {

System.out.println(“Cannot open findhost!”);

System.exit(1);

}

DatagramPacket dp =

new DatagramPacket(buf, buf.length, destination , 10000);

//打包到DatagramPacket类型中(DatagramSocket的send()方法接受此类,注意10000是接受地址的端口,不同于自己的端口!)

try {

ds.send(dp); //发送数据

} catch (IOException e) {

}

ds.close();

}

}

接收步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

使用DatagramPacket的方法,提取数据。

关闭资源。

import java.net.*;

public class Rec {

public static void main(String[] args) throws Exception {

DatagramSocket ds = new DatagramSocket(10000); //定义服务,监视端口上面的发送端口,注意不是send本身端口

byte[] buf = new byte[1024];//接受内容的大小,注意不要溢出

DatagramPacket dp = new DatagramPacket(buf,0,buf.length);//定义一个接收的包

ds.receive(dp);//将接受内容封装到包中

String data = new String(dp.getData(), 0, dp.getLength());//利用getData()方法取出内容

System.out.println(data);//打印内容

ds.close();//关闭资源

}

}

有没有用java代码操作nmap进行过端口扫描的

nmap端口状态解析

open , 应用程序在该端口接收 TCP 连接或者 UDP 报文。

closed 关闭的端口对于nmap也是可访问的, 它接收nmap探测报文并作出响应。但没有应用程序在其上监听。

filtered 由于包过滤阻止探测报文到达端口,nmap无法确定该端口是否开放。过滤可能来自专业的防火墙设备,路由规则 或者主机上的软件防火墙。

unfiltered 未被过滤状态意味着端口可访问,但是nmap无法确定它是开放还是关闭。 只有用于映射防火墙规则集的 ACK 扫描才会把端口分类到这个状态。

java扫描端口的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于端口扫描器java项目开发、java扫描端口的信息别忘了在本站进行查找喔。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月30日 10:47:59
下一篇 2024年3月30日 10:59:20

相关推荐

  • java绑定一个端口,java使用端口

    java如何多个service共用一个端口 你如果有多个项目的话,你可以把多个项目放到一个tomcat里面,这样端口相同使用项目名称来进行区分项目。你如果非要使用同一个,你也可以配置不同的域名导向不同的项目。就是访问的域名不同转接到的项目不同。 如果需要同时启动多个程序,要么修改tomcat的配置文件中的监听端口。要么修改jar包程序的监听端口。不能在一台服…

    2024年5月23日
    3400
  • aspexcel未找到项目,xlsread未找到工作表

    ASP读取EXCEL有某一列的数据读取不到,显示为空? 1、可以考虑采用“ewebeditor”控件,我用的asp版本,刚好在做一个excel倒入项目,不过还在纠结如何读取xls中单元格内容的超链接。 2、if not (rsexcel.bof and rsexcel.eof)while do 比较乱。我模仿你的思路成功了。 3、rst(语文)=rs(2)r…

    2024年5月23日
    4400
  • linux网口即时流量查看,linux查看端口流量

    如何在Linux下统计高速网络中的流量 第一个脚本是统计每秒数据量,包含接收(RX)或发送(TX)。而后面的则是一个描述网络传输中的接收(RX)发送(TX)带宽。这些脚本中安装不需要任何的工具。测量网口每秒数据包:下面的屏幕截图显示了上面的两个脚本的输出。 使用 iptraf iptraf是一个实时查看网络流量的文本屏幕界面工具。 在类Unix系统中可以使用…

    2024年5月23日
    5000
  • java获取项目上传路径,java获取项目根路径

    java获取当前项目的路径 在jsp里,根目录是WebRoot 在class文件中,根目录是WebRoot/WEB-INF/classes 也可以选用System.getProperty(user.dir)获取工程的绝对路径。 getClass().getResource() 方法获得相对路径( 此方法在jar包中无效。 File类有两个常用方法可以得到文件…

    2024年5月23日
    4100
  • linux必开端口,linux端口是否开启

    linux服务器需要开启哪些端口 查看哪些端口被打开netstat -anp。关闭端口号:iptables -AINPUT -ptcp –drop 端口号-jDROP,iptables -AOUTPUT -ptcp –dport 端口号-jDROP。 linux远程登录使用的是SSHD服务来,此服务需要在linux服务端开启后,客户端…

    2024年5月23日
    4300
  • java中ra项目,idea创建java项目

    用java定义一个一维数组,其中随机生成500个1到50之间整数,输出出现最多… Math类的random()方法可以生成[0,1)之间的随机浮点数。double类型数据强制转换成int类型,整数部分赋值给int类型变量,小数点之后的小数部分将会丢失。int b=(int)(Math.random()*10);//生成[0,9]之间的随机整数。 …

    2024年5月22日
    3700
  • linux永久开启22端口,linux系统开放22端口

    LINUX如何开启22好端口 端口是基于linux下的SSH服务,我们要配置好ssh,然后通过ssh开启22端口。操作步骤:百度搜索“SSHSecureShellClient”下载并安装。 端口是ssh服务的,你只要启动ssh服务就可以了,可以执行命令“/etc/init.d/sshd start”。然后用netstat-antulp|grepssh看是否能…

    2024年5月22日
    4100
  • java项目经验模板,Java项目经验

    Java软件开发工程师个人简历模板 1、扎实的JAVA基础知识,熟悉面向对象编程思想,熟练MVC设计模式。 2、年应届毕业生个人简历模板(一) 姓名:xxx 性别:xx 年龄:xx 学历:本科 毕业院校:xxx 专业:xxx 电子邮箱:xxx 联系电话:xxx 通信地址:xxx 毕业院校:xxx 主修课程: 汇编语言程序设计、JAVA程序设计、数据库原理、操…

    2024年5月22日
    5100
  • jboss开机自动启动linux,linux开机自启动java项目

    linux设置开机自启动脚本的最佳方式 1、使用systemctl工具:这是Linux系统中推荐的配置服务开机启动的方式,但是您提到在V10系统中systemctl无法正常启动服务,所以此方法不适用。 2、修改开机启动文件:/etc/rc.local(或者/etc/rc.d/rc.local)自己写一个shell脚本 将写好的脚本(.sh文件)放到目录 /e…

    2024年5月22日
    4300
  • linux下tomcat修改端口的简单介绍

    linux中怎么用tomcat绑定80端口 1、(1)首先找到tomcat的安装路径,找到路径conf文件夹下面的server.xml文件,如下图1所示。 2、防火墙借由监测所有的封包并找出不符规则的内容,可以防范电脑蠕虫或是木马程序的快速蔓延。 3、获取CAP_NET_BIND_SERVICE能力,即使服务程序运行在非root帐户下,也能够banding到…

    2024年5月22日
    4700

发表回复

登录后才能评论



关注微信