IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 基于nmap 的简单主机、端口探测和基于curl的接口探测 -> 正文阅读

[开发工具]基于nmap 的简单主机、端口探测和基于curl的接口探测

程序下载

程序说明

程序功能

  • 主机探测(基于 nmap 命令)
  • 端口探测(基于 nmap 命令)
  • API/URI 探测(基于 CURL 命令)

使用示例

主机探测

nmap 对应命令:

nmap  -sn -PE ip/域名
nmap 命令探测实现(Zen Nmap GUI 工具)

在这里插入图片描述

程序探测实现
public PingResult ping(String nmapPath, List<String> urls){
    NmapUtil util = new NmapUtil(nmapPath);
    return util.detectHost(urls);
}
  • 实例化 NmapUtil 类,并传入 nmap 命令的路径。

  • 调用 detectHost(List<String> urls) 方法对主机进行探测,支持域名和IP。

    • detectHost 的重载方法:
      • public PingResult detectHost(String... urls)
      • public PingResult detectHost(List<String> urls)
  • 返回的结果为 PingResult 类的对象。

? PingResult 类定义如下:

@Data
public class PingResult {
    /**
     * 总耗时
     */
    private double timeConsume;

    /**
     *  key = 域名/IP  value = 时延 单位s
     */
    private Map<String,Double> latencyInfo;

}
postman 调用返回

在这里插入图片描述

端口探测

nmap 对应命令:

nmap -sS -p port1,port2 ip/域名
nmap 探测实现

在这里插入图片描述

程序探测实现
public PortDetectResult port(String nmapPath, String url, List<String> ports){
    NmapUtil util = new NmapUtil(nmapPath);
    return util.detectPort(url, ports);
}
  • 实例化 NmapUtil 类,并传入 nmap 命令的路径。
  • 调用 detectPort 方法,传入对应的 URL 与 端口信息,该方法会对单个 URL 的多个端口进行探测,并返回探测的结果。detectPort 有两个重载方法:
    • public List<PortDetectResult> detectPort(List<String> urlList, List<String> portList)
    • public PortDetectResult detectPort(String url, List<String> portList)
  • 单个 URL 的探测结果封装为 PortDetectResult类。类定义如下:
@Data
public class PortDetectResult {
    /**
     * 域名或者ip
     */
    private String resId;

    /**
     * 探测的端口信息
     */
    private List<NmapPort> portInfo;

    /**
     * 总耗时
     */
    private Double timeConsume;

    /**
     * 时延
     */
    private Double latency;
}
posman 调用返回

在这里插入图片描述

API 探测

参考:curl 命令详解

程序实现
public Map<String, CurlDetectResult> curl(List<String> url){
    CurlUtil util = new CurlUtil();
    Map<String, CurlDetectResult> map = util.detectUrl(CurlDetectResult.class, url);
    return map;
}
  • 实例化 CurlUtil类。
  • 调用 detectUrl 方法进行探测。其中,第一个参数为 Class 类型的对象,第二个为要探测的 URL。
  • 返回为传入的 Class 实例化对象。
  • 对于要传入的 Class 类型对象,以 CurlDetectResult 为例。其定义如下:
    • 属性command:为 CURL探测 的具体命令,并将命令的返回封装成对应的实体,即CurlDetectResult。其中,返回的参数是由 -w 指定的。关于 -w 参数,可参考: CURL -w 参数详解_weifangan的博客-CSDN博客
    • 方法 isNormal:自定义业务方法 。
@Data
@AllArgsConstructor
public class CurlDetectResult {

    /**
     * curl 命令
     */
    public static final String command = "curl -m 10 -sS -o /dev/null -w \"{\"time_connect\": %{time_connect},\"time_nslookup\":%{time_namelookup},\"time_total\": %{time_total}, \"http_code\":%{http_code}}\"";


    /**
     * dns 解析时间
     */
    private Double time_nslookup;
    /**
     * 连接耗时
     */
    private Double time_connect;
    /**
     * 总耗时
     */
    private Double time_total;

    /**
     * http 响应码
     */
    private int http_code;

    /**
     * 判断响应码是否正确,这里很粗略判断
     * 响应码 https://blog.csdn.net/ChineseSoftware/article/details/123177081
     */
    private boolean isNormal(){
        return this.http_code != 0 && http_code != 404 && http_code < 500;
    }
}
postman 调用返回

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:11:00  更:2022-05-21 19:12:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年9日历 -2024/9/21 11:20:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码