diff options
| author | Jinghua <[email protected]> | 2023-05-29 15:10:46 +0800 |
|---|---|---|
| committer | Jinghua <[email protected]> | 2023-05-29 15:10:46 +0800 |
| commit | 8860199d618c78124ba3f6de77bce4f2c752821c (patch) | |
| tree | ea7eaac76aab1837fae7d465a53e4822e82d022f | |
| parent | 7fbe1093977d6a265b1f4fdf87930440eed35546 (diff) | |
23-0529
91 files changed, 2297 insertions, 0 deletions
diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..1c2fda5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b638fae --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="CompilerConfiguration">
+ <annotationProcessing>
+ <profile default="true" name="Default" enabled="true" />
+ <profile name="Maven default annotation processors profile" enabled="true">
+ <sourceOutputDir name="target/generated-sources/annotations" />
+ <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+ <outputRelativeToContentRoot value="true" />
+ <module name="framework" />
+ </profile>
+ </annotationProcessing>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..81da308 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
+ <data-source source="LOCAL" name="@sgblog" uuid="78b513d7-6200-474b-882b-4f27eb165f11">
+ <driver-ref>mysql.8</driver-ref>
+ <synchronize>true</synchronize>
+ <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
+ <jdbc-url>jdbc:mysql://192.168.107.20:3306/sg_blog</jdbc-url>
+ <working-dir>$ProjectFileDir$</working-dir>
+ </data-source>
+ <data-source source="LOCAL" name="windows" uuid="11d19adb-d127-4d66-9ce9-00489b039039">
+ <driver-ref>mysql.8</driver-ref>
+ <synchronize>true</synchronize>
+ <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
+ <jdbc-url>jdbc:mysql://localhost:3306</jdbc-url>
+ <working-dir>$ProjectFileDir$</working-dir>
+ </data-source>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/easyCodeTableSetting.xml b/.idea/easyCodeTableSetting.xml new file mode 100644 index 0000000..577d514 --- /dev/null +++ b/.idea/easyCodeTableSetting.xml @@ -0,0 +1,520 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="EasyCodeTableSetting">
+ <option name="tableInfoMap">
+ <map>
+ <entry key="diplo.port">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="端口表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="端口号" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="portNum" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="扫描次数" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="scanCount" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="Port" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java/org/example" />
+ <option name="templateGroupName" value="Default" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="information_schema.COLUMN_PRIVILEGES">
+ <value>
+ <TableInfoDTO>
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="grantee" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="tableCatalog" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="tableSchema" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="tableName" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="columnName" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="privilegeType" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="isGrantable" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="ColumnPrivileges" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="" />
+ <option name="templateGroupName" value="" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="mesa_portscan.ip">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="扫描源IP表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="IP" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="ip" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="rdns记录,扫描组织" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="rdns" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="IP所属国家" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="country" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="IP所属地区" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="region" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="IP所属城市" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="city" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="ASN号" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="asn" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="Ip" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="MybatisPlus" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="mesa_portscan.port">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="端口表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="端口号" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="portNum" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="协议" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="protocal" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="Port" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="MybatisPlus" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="mesa_portscan.portscan">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="端口扫描记录表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="timestamp" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="扫描源IP" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="sip" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="扫描源端口" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="sport" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="扫描目的IP" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="dip" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="扫描目的端口" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="dport" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="Portscan" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="MybatisPlus" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="mesa_portscan.rdns">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="扫描组织表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="rdns记录,扫描组织" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="rdns" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="注册者" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="registrar" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="国家" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="country" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="注册时间" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="creationDate" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="到期时间" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="expirationDate" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="Rdns" />
+ <option name="preName" value="" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="MybatisPlus" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="sg_blog.sg_article">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="文章表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="标题" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="title" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="文章内容" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="content" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="文章摘要" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="summary" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="所属分类id" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="categoryId" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="缩略图" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="thumbnail" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="是否置顶(0否,1是)" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="isTop" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="状态(0已发布,1草稿)" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="status" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="访问量" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="viewCount" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="是否允许评论 1是,0否" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="isComment" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="createBy" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="createTime" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="updateBy" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="updateTime" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="删除标志(0代表未删除,1代表已删除)" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="delFlag" />
+ <option name="type" value="java.lang.Integer" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="SgArticle" />
+ <option name="preName" value="sg_" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="Default" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ <entry key="sg_blog.sg_category">
+ <value>
+ <TableInfoDTO>
+ <option name="comment" value="分类表" />
+ <option name="fullColumn">
+ <list>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="id" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="分类名" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="name" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="父分类id,如果没有父分类为-1" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="pid" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="描述" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="description" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="状态0:正常,1禁用" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="status" />
+ <option name="type" value="java.lang.String" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="createBy" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="createTime" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="updateBy" />
+ <option name="type" value="java.lang.Long" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="updateTime" />
+ <option name="type" value="java.util.Date" />
+ </ColumnInfoDTO>
+ <ColumnInfoDTO>
+ <option name="comment" value="删除标志(0代表未删除,1代表已删除)" />
+ <option name="custom" value="false" />
+ <option name="ext" value="{}" />
+ <option name="name" value="delFlag" />
+ <option name="type" value="java.lang.Integer" />
+ </ColumnInfoDTO>
+ </list>
+ </option>
+ <option name="name" value="SgCategory" />
+ <option name="preName" value="sg_" />
+ <option name="saveModelName" value="framework" />
+ <option name="savePackageName" value="" />
+ <option name="savePath" value="./framework/src/main/java" />
+ <option name="templateGroupName" value="MybatisPlus" />
+ </TableInfoDTO>
+ </value>
+ </entry>
+ </map>
+ </option>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..0442c3a --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Encoding">
+ <file url="file://$PROJECT_DIR$/framework/src/main/java" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/framework/src/main/resources" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+ <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..3016d79 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="RemoteRepositoriesConfiguration">
+ <remote-repository>
+ <option name="id" value="central" />
+ <option name="name" value="Maven Central repository" />
+ <option name="url" value="https://repo1.maven.org/maven2" />
+ </remote-repository>
+ <remote-repository>
+ <option name="id" value="jboss.community" />
+ <option name="name" value="JBoss Community repository" />
+ <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+ </remote-repository>
+ <remote-repository>
+ <option name="id" value="central" />
+ <option name="name" value="Central Repository" />
+ <option name="url" value="https://maven.aliyun.com/repository/public" />
+ </remote-repository>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0c41917 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ExternalStorageConfigurationManager" enabled="true" />
+ <component name="MavenProjectsManager">
+ <option name="originalFiles">
+ <list>
+ <option value="$PROJECT_DIR$/pom.xml" />
+ </list>
+ </option>
+ </component>
+ <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+ <output url="file://$PROJECT_DIR$/out" />
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..6d50cd4 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Palette2">
+ <group name="Swing">
+ <item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
+ </item>
+ <item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
+ </item>
+ <item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
+ <default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
+ <initial-values>
+ <property name="text" value="Button" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="RadioButton" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="CheckBox" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
+ <initial-values>
+ <property name="text" value="Label" />
+ </initial-values>
+ </item>
+ <item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
+ <preferred-size width="150" height="-1" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
+ <preferred-size width="150" height="50" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+ <preferred-size width="200" height="200" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
+ <preferred-size width="200" height="200" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
+ </item>
+ <item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
+ </item>
+ <item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
+ </item>
+ <item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
+ <preferred-size width="-1" height="20" />
+ </default-constraints>
+ </item>
+ <item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
+ <default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
+ </item>
+ <item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
+ <default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
+ </item>
+ </group>
+ </component>
+</project>
\ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..2e3f692 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="VcsDirectoryMappings">
+ <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+ </component>
+</project>
\ No newline at end of file diff --git a/framework/pom.xml b/framework/pom.xml new file mode 100644 index 0000000..5f6388a --- /dev/null +++ b/framework/pom.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>MESA-portscan-detection</artifactId> + <groupId>org.example</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>framework</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + <dependencies> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + <!--lombk--> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <optional>true</optional> + </dependency> + <!--junit--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + <!--SpringSecurity启动器--> +<!-- <dependency>--> +<!-- <groupId>org.springframework.boot</groupId>--> +<!-- <artifactId>spring-boot-starter-security</artifactId>--> +<!-- </dependency>--> + <!--redis依赖--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-redis</artifactId> + </dependency> + <!--fastjson依赖--> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + </dependency> + <!--jwt依赖--> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt</artifactId> + </dependency> + <!--mybatisPlus依赖--> + <dependency> + <groupId>com.github.yulichang</groupId> + <artifactId>mybatis-plus-join</artifactId> + </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + </dependency> + <!--mysql数据库驱动--> + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + </dependency> + + <!--阿里云OSS--> + <dependency> + <groupId>com.aliyun.oss</groupId> + <artifactId>aliyun-sdk-oss</artifactId> + </dependency> + + <!--AOP--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-aop</artifactId> + </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>easyexcel</artifactId> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger2</artifactId> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger-ui</artifactId> + </dependency> + + </dependencies> + +</project> diff --git a/framework/src/main/java/org/example/ResponseResult.java b/framework/src/main/java/org/example/ResponseResult.java new file mode 100644 index 0000000..c735c82 --- /dev/null +++ b/framework/src/main/java/org/example/ResponseResult.java @@ -0,0 +1,122 @@ +package org.example;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import org.example.enums.AppHttpCodeEnum;
+
+import java.io.Serializable;
+
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class ResponseResult<T> implements Serializable {
+ private Integer code;
+ private String msg;
+ private T data;
+
+ public ResponseResult() {
+ this.code = AppHttpCodeEnum.SUCCESS.getCode();
+ this.msg = AppHttpCodeEnum.SUCCESS.getMsg();
+ }
+
+ public ResponseResult(Integer code, T data) {
+ this.code = code;
+ this.data = data;
+ }
+
+ public ResponseResult(Integer code, String msg, T data) {
+ this.code = code;
+ this.msg = msg;
+ this.data = data;
+ }
+
+ public ResponseResult(Integer code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ }
+
+ public static ResponseResult errorResult(int code, String msg) {
+ ResponseResult result = new ResponseResult();
+ return result.error(code, msg);
+ }
+ public static ResponseResult okResult() {
+ ResponseResult result = new ResponseResult();
+ return result;
+ }
+ public static ResponseResult okResult(int code, String msg) {
+ ResponseResult result = new ResponseResult();
+ return result.ok(code, null, msg);
+ }
+
+ public static ResponseResult okResult(Object data) {
+ ResponseResult result = setAppHttpCodeEnum(AppHttpCodeEnum.SUCCESS, AppHttpCodeEnum.SUCCESS.getMsg());
+ if(data!=null) {
+ result.setData(data);
+ }
+ return result;
+ }
+
+ public static ResponseResult errorResult(AppHttpCodeEnum enums){
+ return setAppHttpCodeEnum(enums,enums.getMsg());
+ }
+
+ public static ResponseResult errorResult(AppHttpCodeEnum enums, String msg){
+ return setAppHttpCodeEnum(enums,msg);
+ }
+
+ public static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums){
+ return okResult(enums.getCode(),enums.getMsg());
+ }
+
+ private static ResponseResult setAppHttpCodeEnum(AppHttpCodeEnum enums, String msg){
+ return okResult(enums.getCode(),msg);
+ }
+
+ public ResponseResult<?> error(Integer code, String msg) {
+ this.code = code;
+ this.msg = msg;
+ return this;
+ }
+
+ public ResponseResult<?> ok(Integer code, T data) {
+ this.code = code;
+ this.data = data;
+ return this;
+ }
+
+ public ResponseResult<?> ok(Integer code, T data, String msg) {
+ this.code = code;
+ this.data = data;
+ this.msg = msg;
+ return this;
+ }
+
+ public ResponseResult<?> ok(T data) {
+ this.data = data;
+ return this;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public void setCode(Integer code) {
+ this.code = code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public T getData() {
+ return data;
+ }
+
+ public void setData(T data) {
+ this.data = data;
+ }
+
+
+
+}
diff --git a/framework/src/main/java/org/example/WebApplication.java b/framework/src/main/java/org/example/WebApplication.java new file mode 100644 index 0000000..3de4a8e --- /dev/null +++ b/framework/src/main/java/org/example/WebApplication.java @@ -0,0 +1,15 @@ +package org.example;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@MapperScan("org.example.mapper")
+@SpringBootApplication(exclude = {SecurityAutoConfiguration.class })
+public class WebApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(WebApplication.class,args);
+ }
+}
diff --git a/framework/src/main/java/org/example/config/WebConfig.java b/framework/src/main/java/org/example/config/WebConfig.java new file mode 100644 index 0000000..96ea818 --- /dev/null +++ b/framework/src/main/java/org/example/config/WebConfig.java @@ -0,0 +1,26 @@ +package org.example.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class WebConfig implements WebMvcConfigurer {
+
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ // 设置允许跨域的路径
+ registry.addMapping("/**")
+ // 设置允许跨域请求的域名
+ .allowedOriginPatterns("*")
+ // 是否允许cookie
+ .allowCredentials(true)
+ // 设置允许的请求方式
+ .allowedMethods("GET", "POST", "DELETE", "PUT")
+ // 设置允许的header属性
+ .allowedHeaders("*")
+ // 跨域允许时间
+ .maxAge(3600);
+ }
+
+}
diff --git a/framework/src/main/java/org/example/controller/IpController.java b/framework/src/main/java/org/example/controller/IpController.java new file mode 100644 index 0000000..e5e0b7e --- /dev/null +++ b/framework/src/main/java/org/example/controller/IpController.java @@ -0,0 +1,35 @@ +package org.example.controller;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.example.ResponseResult;
+import org.example.entity.Ip;
+import org.example.service.IpService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 扫描源IP表(Ip)表控制层
+ *
+ * @author makejava
+ * @since 2023-04-19 17:19:10
+ */
+@RestController
+@RequestMapping("/ip")
+public class IpController {
+
+ @Autowired
+ private IpService ipService;
+ @GetMapping("/getIpDetail/{id}")
+ public ResponseResult getIpDetail(@PathVariable("id") Long id){
+
+ return ipService.getIpDetail(id);
+ }
+}
+
diff --git a/framework/src/main/java/org/example/controller/PortController.java b/framework/src/main/java/org/example/controller/PortController.java new file mode 100644 index 0000000..68292d7 --- /dev/null +++ b/framework/src/main/java/org/example/controller/PortController.java @@ -0,0 +1,26 @@ +package org.example.controller;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.example.entity.Port;
+import org.example.service.PortService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 端口表(Port)表控制层
+ *
+ * @author makejava
+ * @since 2023-04-21 09:44:03
+ */
+@RestController
+@RequestMapping("port")
+public class PortController{
+
+}
+
diff --git a/framework/src/main/java/org/example/controller/PortscanController.java b/framework/src/main/java/org/example/controller/PortscanController.java new file mode 100644 index 0000000..c5d5404 --- /dev/null +++ b/framework/src/main/java/org/example/controller/PortscanController.java @@ -0,0 +1,54 @@ +package org.example.controller;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.example.ResponseResult;
+import org.example.entity.Portscan;
+import org.example.mapper.PortscanMapper;
+import org.example.service.PortscanService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 端口扫描记录表(Portscan)表控制层
+ *
+ * @author makejava
+ * @since 2023-04-19 17:17:44
+ */
+@RestController
+@RequestMapping("/portscan")
+public class PortscanController {
+
+ @Autowired
+ private PortscanService portscanService;
+
+ @GetMapping("/getTopPorts")
+ public ResponseResult getTopPorts(){
+ return portscanService.getTopPorts();
+ }
+
+ @GetMapping("/getTopCountries")
+ public ResponseResult getTopCountries(){
+ return portscanService.getTopCountries();
+ }
+
+ @GetMapping("/getIpList")
+ public ResponseResult getIpList(){
+
+ return portscanService.getIpList();
+ }
+
+ @GetMapping("/getOrganizationList")
+ public ResponseResult getOrganizationList(){
+ return portscanService.getOrganizationList();
+ }
+
+
+}
+
diff --git a/framework/src/main/java/org/example/controller/RdnsController.java b/framework/src/main/java/org/example/controller/RdnsController.java new file mode 100644 index 0000000..bd8d248 --- /dev/null +++ b/framework/src/main/java/org/example/controller/RdnsController.java @@ -0,0 +1,33 @@ +package org.example.controller;
+
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.example.ResponseResult;
+import org.example.entity.Rdns;
+import org.example.service.RdnsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 扫描组织表(Rdns)表控制层
+ *
+ * @author makejava
+ * @since 2023-04-21 09:35:52
+ */
+@RestController
+@RequestMapping("org")
+public class RdnsController{
+ @Autowired
+ private RdnsService rdnsService;
+ @GetMapping("/getOrgDetail/{id}")
+ public ResponseResult getOrgDetail(@PathVariable("id") Long id){
+ return rdnsService.getOrgDetail(id);
+ }
+}
+
diff --git a/framework/src/main/java/org/example/entity/Ip.java b/framework/src/main/java/org/example/entity/Ip.java new file mode 100644 index 0000000..fec002a --- /dev/null +++ b/framework/src/main/java/org/example/entity/Ip.java @@ -0,0 +1,40 @@ +package org.example.entity;
+
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+/**
+ * 扫描源IP表(Ip)表实体类
+ *
+ * @author makejava
+ * @since 2023-04-19 17:19:12
+ */
+@SuppressWarnings("serial")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("ip")
+public class Ip {
+ @TableId
+ private Long id;
+
+ //IP
+ private String ip;
+ //rdns记录,扫描组织
+ private String rdns;
+ //IP所属国家
+ private String country;
+ //IP所属地区
+ private String region;
+ //IP所属城市
+ private String city;
+ //ASN号
+ private String asn;
+
+
+
+}
diff --git a/framework/src/main/java/org/example/entity/Port.java b/framework/src/main/java/org/example/entity/Port.java new file mode 100644 index 0000000..7474c21 --- /dev/null +++ b/framework/src/main/java/org/example/entity/Port.java @@ -0,0 +1,32 @@ +package org.example.entity;
+
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+/**
+ * 端口表(Port)表实体类
+ *
+ * @author makejava
+ * @since 2023-04-21 09:44:04
+ */
+@SuppressWarnings("serial")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("port")
+public class Port {
+ @TableId
+ private Long id;
+
+ //端口号
+ private Long portNum;
+ //协议
+ private String protocol;
+
+
+
+}
diff --git a/framework/src/main/java/org/example/entity/Portscan.java b/framework/src/main/java/org/example/entity/Portscan.java new file mode 100644 index 0000000..b6520c4 --- /dev/null +++ b/framework/src/main/java/org/example/entity/Portscan.java @@ -0,0 +1,39 @@ +package org.example.entity;
+
+import java.util.Date;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+/**
+ * 端口扫描记录表(Portscan)表实体类
+ *
+ * @author makejava
+ * @since 2023-04-19 17:17:47
+ */
+@SuppressWarnings("serial")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("portscan")
+public class Portscan {
+ @TableId
+ private Long id;
+
+
+ private Date timestamp;
+ //扫描源IP
+ private String sip;
+ //扫描源端口
+ private Long sport;
+ //扫描目的IP
+ private String dip;
+ //扫描目的端口
+ private Long dport;
+
+
+
+}
diff --git a/framework/src/main/java/org/example/entity/Rdns.java b/framework/src/main/java/org/example/entity/Rdns.java new file mode 100644 index 0000000..b577bb9 --- /dev/null +++ b/framework/src/main/java/org/example/entity/Rdns.java @@ -0,0 +1,39 @@ +package org.example.entity;
+
+import java.util.Date;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+/**
+ * 扫描组织表(Rdns)表实体类
+ *
+ * @author makejava
+ * @since 2023-04-21 09:35:54
+ */
+@SuppressWarnings("serial")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@TableName("rdns")
+public class Rdns {
+ @TableId
+ private Long id;
+
+ //rdns记录,扫描组织
+ private String rdns;
+ //注册者
+ private String registrar;
+ //国家
+ private String country;
+ //注册时间
+ private Date creationDate;
+ //到期时间
+ private Date expirationDate;
+
+
+
+}
diff --git a/framework/src/main/java/org/example/enums/AppHttpCodeEnum.java b/framework/src/main/java/org/example/enums/AppHttpCodeEnum.java new file mode 100644 index 0000000..04b7c9a --- /dev/null +++ b/framework/src/main/java/org/example/enums/AppHttpCodeEnum.java @@ -0,0 +1,29 @@ +package org.example.enums;
+
+public enum AppHttpCodeEnum {
+ // 成功
+ SUCCESS(200,"操作成功"),
+ // 登录
+ NEED_LOGIN(401,"需要登录后操作"),
+ NO_OPERATOR_AUTH(403,"无权限操作"),
+ SYSTEM_ERROR(500,"出现错误"),
+ USERNAME_EXIST(501,"用户名已存在"),
+ PHONENUMBER_EXIST(502,"手机号已存在"), EMAIL_EXIST(503, "邮箱已存在"),
+ REQUIRE_USERNAME(504, "必需填写用户名"),
+ LOGIN_ERROR(505,"用户名或密码错误");
+ int code;
+ String msg;
+
+ AppHttpCodeEnum(int code, String errorMessage){
+ this.code = code;
+ this.msg = errorMessage;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+}
diff --git a/framework/src/main/java/org/example/mapper/IpMapper.java b/framework/src/main/java/org/example/mapper/IpMapper.java new file mode 100644 index 0000000..8afaa8d --- /dev/null +++ b/framework/src/main/java/org/example/mapper/IpMapper.java @@ -0,0 +1,18 @@ +package org.example.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.example.entity.Ip;
+
+
+/**
+ * 扫描源IP表(Ip)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-04-19 17:19:13
+ */
+@Mapper
+public interface IpMapper extends MPJBaseMapper<Ip> {
+
+}
diff --git a/framework/src/main/java/org/example/mapper/PortMapper.java b/framework/src/main/java/org/example/mapper/PortMapper.java new file mode 100644 index 0000000..921e387 --- /dev/null +++ b/framework/src/main/java/org/example/mapper/PortMapper.java @@ -0,0 +1,15 @@ +package org.example.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.example.entity.Port;
+
+
+/**
+ * 端口表(Port)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-04-21 09:44:05
+ */
+public interface PortMapper extends BaseMapper<Port> {
+
+}
diff --git a/framework/src/main/java/org/example/mapper/PortscanMapper.java b/framework/src/main/java/org/example/mapper/PortscanMapper.java new file mode 100644 index 0000000..8d45956 --- /dev/null +++ b/framework/src/main/java/org/example/mapper/PortscanMapper.java @@ -0,0 +1,19 @@ +package org.example.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import org.example.entity.Portscan;
+
+
+
+/**
+ * 端口扫描记录表(Portscan)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-04-19 17:17:49
+ */
+@Mapper
+public interface PortscanMapper extends MPJBaseMapper<Portscan> {
+
+}
diff --git a/framework/src/main/java/org/example/mapper/RdnsMapper.java b/framework/src/main/java/org/example/mapper/RdnsMapper.java new file mode 100644 index 0000000..ce47936 --- /dev/null +++ b/framework/src/main/java/org/example/mapper/RdnsMapper.java @@ -0,0 +1,15 @@ +package org.example.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.example.entity.Rdns;
+
+
+/**
+ * 扫描组织表(Rdns)表数据库访问层
+ *
+ * @author makejava
+ * @since 2023-04-21 09:35:55
+ */
+public interface RdnsMapper extends BaseMapper<Rdns> {
+
+}
diff --git a/framework/src/main/java/org/example/service/IpService.java b/framework/src/main/java/org/example/service/IpService.java new file mode 100644 index 0000000..b0ba8bf --- /dev/null +++ b/framework/src/main/java/org/example/service/IpService.java @@ -0,0 +1,18 @@ +package org.example.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.example.ResponseResult;
+import org.example.entity.Ip;
+
+
+/**
+ * 扫描源IP表(Ip)表服务接口
+ *
+ * @author makejava
+ * @since 2023-04-19 17:19:13
+ */
+public interface IpService extends IService<Ip> {
+ ResponseResult getIpDetail(Long id);
+
+// ResponseResult getIpList();
+}
diff --git a/framework/src/main/java/org/example/service/PortService.java b/framework/src/main/java/org/example/service/PortService.java new file mode 100644 index 0000000..b68845c --- /dev/null +++ b/framework/src/main/java/org/example/service/PortService.java @@ -0,0 +1,15 @@ +package org.example.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.example.entity.Port;
+
+
+/**
+ * 端口表(Port)表服务接口
+ *
+ * @author makejava
+ * @since 2023-04-21 09:44:04
+ */
+public interface PortService extends IService<Port> {
+
+}
diff --git a/framework/src/main/java/org/example/service/PortscanService.java b/framework/src/main/java/org/example/service/PortscanService.java new file mode 100644 index 0000000..110b436 --- /dev/null +++ b/framework/src/main/java/org/example/service/PortscanService.java @@ -0,0 +1,23 @@ +package org.example.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.example.ResponseResult;
+import org.example.entity.Portscan;
+
+
+/**
+ * 端口扫描记录表(Portscan)表服务接口
+ *
+ * @author makejava
+ * @since 2023-04-19 17:17:49
+ */
+public interface PortscanService extends IService<Portscan> {
+
+ ResponseResult getIpList();
+
+ ResponseResult getTopPorts();
+
+ ResponseResult getTopCountries();
+
+ ResponseResult getOrganizationList();
+}
diff --git a/framework/src/main/java/org/example/service/RdnsService.java b/framework/src/main/java/org/example/service/RdnsService.java new file mode 100644 index 0000000..4cb88bc --- /dev/null +++ b/framework/src/main/java/org/example/service/RdnsService.java @@ -0,0 +1,17 @@ +package org.example.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import org.example.ResponseResult;
+import org.example.entity.Rdns;
+
+
+/**
+ * 扫描组织表(Rdns)表服务接口
+ *
+ * @author makejava
+ * @since 2023-04-21 09:35:54
+ */
+public interface RdnsService extends IService<Rdns> {
+
+ ResponseResult getOrgDetail(Long id);
+}
diff --git a/framework/src/main/java/org/example/service/impl/IpServiceImpl.java b/framework/src/main/java/org/example/service/impl/IpServiceImpl.java new file mode 100644 index 0000000..810dea1 --- /dev/null +++ b/framework/src/main/java/org/example/service/impl/IpServiceImpl.java @@ -0,0 +1,91 @@ +package org.example.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.example.ResponseResult;
+import org.example.entity.Ip;
+import org.example.entity.Port;
+import org.example.entity.Portscan;
+import org.example.entity.Rdns;
+import org.example.mapper.IpMapper;
+import org.example.mapper.PortscanMapper;
+import org.example.service.IpService;
+import org.example.service.PortService;
+import org.example.service.PortscanService;
+import org.example.service.RdnsService;
+import org.example.utils.BeanCopyUtils;
+import org.example.vo.IpDetail;
+import org.example.vo.IpDetailPort;
+import org.example.vo.IpDetailRdns;
+import org.example.vo.IpListVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * 扫描源IP表(Ip)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-04-19 17:19:13
+ */
+@Service("ipService")
+public class IpServiceImpl extends ServiceImpl<IpMapper, Ip> implements IpService {
+
+ @Autowired
+ private RdnsService rdnsService;
+ @Autowired
+ private PortscanService portscanService;
+ @Autowired
+ private PortService portService;
+ @Override
+ public ResponseResult getIpDetail(Long id) {
+ IpDetail ipDetail = new IpDetail();
+ //根据id查询ip表中ip的详细信息
+ Ip ip = getById(id);
+ ipDetail.setId(ip.getId());
+ ipDetail.setIp(ip.getIp());
+ ipDetail.setCountry(ip.getCountry());
+ ipDetail.setRegion(ip.getRegion());
+ ipDetail.setCity(ip.getCity());
+ ipDetail.setAsn(ip.getAsn());
+ //从rdns表补充ip的rdns信息
+ LambdaQueryWrapper<Rdns> rdnsWrapper= new LambdaQueryWrapper<>();
+ rdnsWrapper.eq(Rdns::getRdns,ip.getRdns());
+ Rdns rdns = rdnsService.getOne(rdnsWrapper);
+ IpDetailRdns ipDetailRdns = BeanCopyUtils.copyBean(rdns,IpDetailRdns.class);
+ ipDetail.setIpDetailRdns(ipDetailRdns);
+ //从portscan表补充ip的port信息
+ LambdaQueryWrapper<Portscan> portscanWrapper = new LambdaQueryWrapper<>();
+ portscanWrapper.eq(Portscan::getSip,ip.getIp());
+ List<Portscan> portscanList = portscanService.list(portscanWrapper);
+ //获取port列表
+ Set<Long> dports = portscanList.stream()
+ .map(portscan -> portscan.getDport())
+ .collect(Collectors.toSet());
+ //获取port列表
+ LambdaQueryWrapper<Port> portWrapper = new LambdaQueryWrapper<>();
+ portWrapper.in(Port::getPortNum,dports);
+ List<Port> portList = portService.list(portWrapper);
+ List<IpDetailPort> ipDetailPortList = BeanCopyUtils.copyBeanList(portList,IpDetailPort.class);
+ ipDetail.setIpDetailPortList(ipDetailPortList);
+
+ //补充ip第一次和最后一次出现时间
+ portscanList.sort((t1,t2) ->t2.getTimestamp().compareTo(t1.getTimestamp()));
+ //System.out.println(portscanList);
+ if(portscanList.size()<2){
+ ipDetail.setFirstSeen(portscanList.get(0).getTimestamp());
+ ipDetail.setLastSeen(portscanList.get(0).getTimestamp());
+ }else{
+ ipDetail.setFirstSeen(portscanList.get(portscanList.size()-1).getTimestamp());
+ ipDetail.setLastSeen(portscanList.get(0).getTimestamp());
+ }
+ System.out.println(ipDetail);
+ return ResponseResult.okResult(ipDetail);
+ }
+
+}
diff --git a/framework/src/main/java/org/example/service/impl/PortServiceImpl.java b/framework/src/main/java/org/example/service/impl/PortServiceImpl.java new file mode 100644 index 0000000..c8f2490 --- /dev/null +++ b/framework/src/main/java/org/example/service/impl/PortServiceImpl.java @@ -0,0 +1,18 @@ +package org.example.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.example.entity.Port;
+import org.example.mapper.PortMapper;
+import org.example.service.PortService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 端口表(Port)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-04-21 09:44:04
+ */
+@Service("portService")
+public class PortServiceImpl extends ServiceImpl<PortMapper, Port> implements PortService {
+
+}
diff --git a/framework/src/main/java/org/example/service/impl/PortscanServiceImpl.java b/framework/src/main/java/org/example/service/impl/PortscanServiceImpl.java new file mode 100644 index 0000000..9fd67eb --- /dev/null +++ b/framework/src/main/java/org/example/service/impl/PortscanServiceImpl.java @@ -0,0 +1,163 @@ +package org.example.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.example.ResponseResult;
+import org.example.entity.Ip;
+import org.example.entity.Port;
+import org.example.entity.Portscan;
+import org.example.entity.Rdns;
+import org.example.mapper.PortscanMapper;
+import org.example.service.PortscanService;
+import org.example.service.RdnsService;
+import org.example.utils.BeanCopyUtils;
+import org.example.vo.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 端口扫描记录表(Portscan)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-04-19 17:17:49
+ */
+@Service("portscanService")
+public class PortscanServiceImpl extends ServiceImpl<PortscanMapper, Portscan> implements PortscanService {
+
+ @Autowired
+ private PortscanMapper portscanMapper;
+
+ private RdnsService rdnsService;
+ @Override
+ public ResponseResult getIpList() {
+ //联表查询,查询portscan中sip在ip表中对应的id
+ MPJLambdaWrapper<Portscan> wrapper = new MPJLambdaWrapper<Portscan>()
+ .selectAs(Portscan::getSip,IpListVo::getIp)
+ .select(Ip::getId)
+ .leftJoin(Ip.class,Ip::getIp,Portscan::getSip);
+ List<IpListVo> ipListVoList = portscanMapper.selectJoinList(IpListVo.class,wrapper);
+ //统计ipListVoList中每个ip出现的次数
+ HashMap<String,Long> ipNum = new HashMap<>();
+ for (IpListVo ipListVo : ipListVoList) {
+ if(!ipNum.containsKey(ipListVo.getIp())){
+ ipNum.put(ipListVo.getIp(), 1L);
+ }else{
+ ipNum.replace(ipListVo.getIp(),ipNum.get(ipListVo.getIp())+1);
+ }
+ }
+ //将ip出现的次数赋值给num
+ for (IpListVo ipListVo : ipListVoList) {
+ ipListVo.setNum(ipNum.get(ipListVo.getIp()));
+ }
+ //list去重
+ List<IpListVo> finalIpList = ipListVoList.stream().distinct().collect(Collectors.toList());
+ PageVo pageVo = new PageVo(finalIpList,finalIpList.size());
+ return ResponseResult.okResult(pageVo);
+ }
+
+ @Override
+ public ResponseResult getTopPorts() {
+ //联表查询,查询portscan中dport在port表中对应的id
+ MPJLambdaWrapper<Portscan> wrapper = new MPJLambdaWrapper<Portscan>()
+ .selectAs(Portscan::getDport, PortListVo::getPortNum)
+ .select(Port::getId)
+ .leftJoin(Port.class,Port::getPortNum,Portscan::getDport);
+ List<PortListVo> portListVoList = portscanMapper.selectJoinList(PortListVo.class,wrapper);
+ //统计portListVoList中每个port出现的次数
+ HashMap<Long,Long> portNum = new HashMap<>();
+ for (PortListVo portListVo : portListVoList) {
+ if(!portNum.containsKey(portListVo.getPortNum())){
+ portNum.put(portListVo.getPortNum(),1L);
+ }else{
+ portNum.replace(portListVo.getPortNum(),portNum.get(portListVo.getPortNum())+1);
+ }
+ }
+ //将port出现的次数赋值给num
+ for (PortListVo portListVo : portListVoList) {
+ portListVo.setNum(portNum.get(portListVo.getPortNum()));
+ }
+ //list去重
+ List<PortListVo> finalPortList = portListVoList.stream().distinct().collect(Collectors.toList());
+ //根据num排序
+ finalPortList.sort(Comparator.comparing(PortListVo::getNum).reversed());
+ //封装结果返回
+ PageVo pageVo = new PageVo(finalPortList, finalPortList.size());
+ return ResponseResult.okResult(pageVo);
+ }
+
+ @Override
+ public ResponseResult getTopCountries() {
+ //portscan联合ip表,查询所有IP对应的国家
+ MPJLambdaWrapper<Portscan> wrapper = new MPJLambdaWrapper<Portscan>()
+ //.select(Portscan::getSip)
+ .selectAs(Ip::getCountry, CountryListVo::getCountry)
+ .leftJoin(Ip.class,Ip::getIp,Portscan::getSip);
+ List<CountryListVo> countryListVos = portscanMapper.selectJoinList(CountryListVo.class,wrapper);
+ //统计countryListVos中每个国家出现的次数
+ HashMap<String,Long> countryNum = new HashMap<>();
+ for (CountryListVo countryListVo : countryListVos) {
+ if(!countryNum.containsKey(countryListVo.getCountry())){
+ countryNum.put(countryListVo.getCountry(),1L);
+ }else{
+ countryNum.replace(countryListVo.getCountry(),countryNum.get(countryListVo.getCountry())+1);
+ }
+ }
+ //将country出现的次数赋值给num
+ for (CountryListVo countryListVo : countryListVos) {
+ countryListVo.setNum(countryNum.get(countryListVo.getCountry()));
+ }
+ //list去重
+ List<CountryListVo> finalCountryList = countryListVos.stream().distinct().collect(Collectors.toList());
+ //根据num排序
+ finalCountryList.sort(Comparator.comparing(CountryListVo::getNum).reversed());
+ //截取前五个对象
+ //countryListVos.subList(0,5);
+ //封装返回
+ PageVo pageVo = new PageVo(finalCountryList,finalCountryList.size());
+ return ResponseResult.okResult(pageVo);
+ }
+
+ @Override
+ public ResponseResult getOrganizationList() {
+ //portscan表联查ip表获取rdns列表
+ MPJLambdaWrapper<Portscan> wrapper = new MPJLambdaWrapper<Portscan>()
+ .select(Rdns::getId)
+ .select(Ip::getRdns)
+ .leftJoin(Ip.class,Ip::getIp,Portscan::getSip)
+ .leftJoin(Rdns.class,Rdns::getRdns,Ip::getRdns);
+ List<RdnsListVo> rdnsListVoList = portscanMapper.selectJoinList(RdnsListVo.class,wrapper);
+
+ //去掉list中空的对象
+ rdnsListVoList.removeAll(Collections.singleton(null));
+ //统计每个rdns出现的次数
+ HashMap<String,Long> rdnsNum = new HashMap<>();
+ for (RdnsListVo rdnsListVo : rdnsListVoList) {
+ //System.out.println(rdnsListVo);
+ if(!rdnsNum.containsKey(rdnsListVo.getRdns())){
+ rdnsNum.put(rdnsListVo.getRdns(),1L);
+ }else{
+ rdnsNum.replace(rdnsListVo.getRdns(),rdnsNum.get(rdnsListVo.getRdns())+1);
+ }
+ }
+ //将country出现的次数赋值给num
+ for (RdnsListVo rdnsListVo : rdnsListVoList) {
+ rdnsListVo.setNum(rdnsNum.get(rdnsListVo.getRdns()));
+ }
+ //list去重
+ List<RdnsListVo> finalRdnsList = rdnsListVoList.stream().distinct().collect(Collectors.toList());
+ //根据num排序
+ finalRdnsList.sort(Comparator.comparing(RdnsListVo::getNum).reversed());
+ //截取前五个对象
+ //countryListVos.subList(0,5);
+ //封装返回
+ PageVo pageVo = new PageVo(finalRdnsList,finalRdnsList.size());
+ return ResponseResult.okResult(pageVo);
+ }
+}
diff --git a/framework/src/main/java/org/example/service/impl/RdnsServiceImpl.java b/framework/src/main/java/org/example/service/impl/RdnsServiceImpl.java new file mode 100644 index 0000000..142d479 --- /dev/null +++ b/framework/src/main/java/org/example/service/impl/RdnsServiceImpl.java @@ -0,0 +1,77 @@ +package org.example.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.example.ResponseResult;
+import org.example.entity.Ip;
+import org.example.entity.Rdns;
+import org.example.mapper.RdnsMapper;
+import org.example.service.IpService;
+import org.example.service.RdnsService;
+import org.example.utils.BeanCopyUtils;
+import org.example.vo.IpDetail;
+import org.example.vo.IpDetailPort;
+import org.example.vo.RdnsDetail;
+import org.example.vo.RdnsDetailIp;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 扫描组织表(Rdns)表服务实现类
+ *
+ * @author makejava
+ * @since 2023-04-21 09:35:54
+ */
+@Service("rdnsService")
+public class RdnsServiceImpl extends ServiceImpl<RdnsMapper, Rdns> implements RdnsService {
+
+ @Autowired
+ private IpService ipService;
+ @Override
+ public ResponseResult getOrgDetail(Long id) {
+ RdnsDetail rdnsDetail = new RdnsDetail();
+ Rdns rdns = getById(id);
+ rdnsDetail.setRdns(rdns.getRdns());
+ rdnsDetail.setCountry(rdns.getCountry());
+ //根据rdns查询ip
+ LambdaQueryWrapper<Ip> ipLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ ipLambdaQueryWrapper.eq(Ip::getRdns,rdnsDetail.getRdns());
+ List<Ip> ipList = ipService.list(ipLambdaQueryWrapper);
+ List<RdnsDetailIp> rdnsDetailIpList = BeanCopyUtils.copyBeanList(ipList,RdnsDetailIp.class);
+ rdnsDetail.setRdnsDetailIpList(rdnsDetailIpList);
+ //根据ip.id获取每个IP的信息补充rdns的端口列表
+ for (RdnsDetailIp rdnsDetailIp : rdnsDetail.getRdnsDetailIpList()) {
+ ResponseResult IpDetailResult = ipService.getIpDetail(rdnsDetailIp.getId());
+ IpDetail ipDetail = (IpDetail) IpDetailResult.getData();
+ //添加端口列表
+ if(rdnsDetail.getIpDetailPortList()!=null){
+ for (IpDetailPort ipDetailPort : ipDetail.getIpDetailPortList()) {
+ //System.out.println(ipDetailPort);
+ rdnsDetail.getIpDetailPortList().add(ipDetailPort);
+ }
+ }else{
+ List<IpDetailPort> ipDetailPortList = ipDetail.getIpDetailPortList();
+ rdnsDetail.setIpDetailPortList(ipDetailPortList);
+ }
+ //添加首次出现时间
+ if(rdnsDetail.getFirstSeen()!=null){
+ if(rdnsDetail.getFirstSeen().after(ipDetail.getFirstSeen())){
+ rdnsDetail.setFirstSeen(ipDetail.getFirstSeen());
+ }
+ }else{
+ rdnsDetail.setFirstSeen(ipDetail.getFirstSeen());
+ }
+ //添加最后出现时间
+ if(rdnsDetail.getLastSeen()!=null){
+ if(rdnsDetail.getLastSeen().before(ipDetail.getLastSeen())){
+ rdnsDetail.setLastSeen(ipDetail.getLastSeen());
+ }
+ }else{
+ rdnsDetail.setLastSeen(ipDetail.getLastSeen());
+ }
+ }
+ return ResponseResult.okResult(rdnsDetail);
+ }
+}
diff --git a/framework/src/main/java/org/example/utils/BeanCopyUtils.java b/framework/src/main/java/org/example/utils/BeanCopyUtils.java new file mode 100644 index 0000000..f1f99dd --- /dev/null +++ b/framework/src/main/java/org/example/utils/BeanCopyUtils.java @@ -0,0 +1,31 @@ +package org.example.utils;
+
+import org.springframework.beans.BeanUtils;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class BeanCopyUtils {
+
+ private BeanCopyUtils() {
+ }
+
+ public static <V> V copyBean(Object source,Class<V> clazz) {
+ //创建目标对象
+ V result = null;
+ try {
+ result = clazz.newInstance();
+ //实现属性copy
+ BeanUtils.copyProperties(source, result);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ //返回结果
+ return result;
+ }
+ public static <O,V> List<V> copyBeanList(List<O> list,Class<V> clazz){
+ return list.stream()
+ .map(o -> copyBean(o, clazz))
+ .collect(Collectors.toList());
+ }
+}
diff --git a/framework/src/main/java/org/example/vo/CountryListVo.java b/framework/src/main/java/org/example/vo/CountryListVo.java new file mode 100644 index 0000000..853959f --- /dev/null +++ b/framework/src/main/java/org/example/vo/CountryListVo.java @@ -0,0 +1,16 @@ +package org.example.vo;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class CountryListVo {
+ //国家名称
+ private String country;
+ //出现的次数
+ private Long num;
+}
diff --git a/framework/src/main/java/org/example/vo/IpDetail.java b/framework/src/main/java/org/example/vo/IpDetail.java new file mode 100644 index 0000000..d209c8b --- /dev/null +++ b/framework/src/main/java/org/example/vo/IpDetail.java @@ -0,0 +1,54 @@ +package org.example.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IpDetail {
+ private Long id;
+
+ //IP
+ private String ip;
+ //rdns记录,扫描组织
+ private IpDetailRdns ipDetailRdns;
+ //第一次出现时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date firstSeen;
+ //最后一次出现时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date lastSeen;
+ //IP所属国家
+ private String country;
+ //IP所属地区
+ private String region;
+ //IP所属城市
+ private String city;
+ //ASN号
+ private String asn;
+ //端口列表
+ private List<IpDetailPort> ipDetailPortList;
+
+
+ @Override
+ public String toString() {
+ return "IpDetail{" +
+ "id=" + id +
+ ", ip='" + ip + '\'' +
+ ", ipDetailRdns=" + ipDetailRdns +
+ ", firstSeen=" + firstSeen +
+ ", lastSeen=" + lastSeen +
+ ", country='" + country + '\'' +
+ ", region='" + region + '\'' +
+ ", city='" + city + '\'' +
+ ", asn='" + asn + '\'' +
+ ", ipDetailPortList=" + ipDetailPortList +
+ '}';
+ }
+}
diff --git a/framework/src/main/java/org/example/vo/IpDetailPort.java b/framework/src/main/java/org/example/vo/IpDetailPort.java new file mode 100644 index 0000000..88b3be0 --- /dev/null +++ b/framework/src/main/java/org/example/vo/IpDetailPort.java @@ -0,0 +1,15 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IpDetailPort {
+ //端口号
+ private Long portNum;
+ //协议
+ private String protocol;
+}
diff --git a/framework/src/main/java/org/example/vo/IpDetailRdns.java b/framework/src/main/java/org/example/vo/IpDetailRdns.java new file mode 100644 index 0000000..b22b12c --- /dev/null +++ b/framework/src/main/java/org/example/vo/IpDetailRdns.java @@ -0,0 +1,14 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IpDetailRdns {
+ private Long id;
+ //rdns记录,扫描组织
+ private String rdns;
+}
diff --git a/framework/src/main/java/org/example/vo/IpListVo.java b/framework/src/main/java/org/example/vo/IpListVo.java new file mode 100644 index 0000000..bd8ecd8 --- /dev/null +++ b/framework/src/main/java/org/example/vo/IpListVo.java @@ -0,0 +1,17 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class IpListVo {
+
+ private Long id;
+ //IP
+ private String ip;
+ //出现次数
+ private Long num;
+}
diff --git a/framework/src/main/java/org/example/vo/PageVo.java b/framework/src/main/java/org/example/vo/PageVo.java new file mode 100644 index 0000000..7c17ffa --- /dev/null +++ b/framework/src/main/java/org/example/vo/PageVo.java @@ -0,0 +1,15 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class PageVo {
+ private List rows;
+ private int total;
+}
diff --git a/framework/src/main/java/org/example/vo/PortListVo.java b/framework/src/main/java/org/example/vo/PortListVo.java new file mode 100644 index 0000000..9d5537c --- /dev/null +++ b/framework/src/main/java/org/example/vo/PortListVo.java @@ -0,0 +1,19 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class PortListVo {
+
+ //端口在port表中的id
+ private Long id;
+ //端口号
+ private Long portNum;
+ //出现次数
+ private Long num;
+
+}
diff --git a/framework/src/main/java/org/example/vo/RdnsDetail.java b/framework/src/main/java/org/example/vo/RdnsDetail.java new file mode 100644 index 0000000..edbd134 --- /dev/null +++ b/framework/src/main/java/org/example/vo/RdnsDetail.java @@ -0,0 +1,29 @@ +package org.example.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RdnsDetail {
+ //rdns记录,扫描组织
+ private String rdns;
+ //国家
+ private String country;
+ //第一次出现时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date firstSeen;
+ //最后一次出现时间
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm",timezone = "GMT+8")
+ private Date lastSeen;
+ //IP列表
+ private List<RdnsDetailIp> rdnsDetailIpList;
+ //端口列表
+ private List<IpDetailPort> ipDetailPortList;
+}
diff --git a/framework/src/main/java/org/example/vo/RdnsDetailIp.java b/framework/src/main/java/org/example/vo/RdnsDetailIp.java new file mode 100644 index 0000000..348bcd7 --- /dev/null +++ b/framework/src/main/java/org/example/vo/RdnsDetailIp.java @@ -0,0 +1,14 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RdnsDetailIp {
+ private Long id;
+ //IP
+ private String ip;
+}
diff --git a/framework/src/main/java/org/example/vo/RdnsDetailPort.java b/framework/src/main/java/org/example/vo/RdnsDetailPort.java new file mode 100644 index 0000000..d251163 --- /dev/null +++ b/framework/src/main/java/org/example/vo/RdnsDetailPort.java @@ -0,0 +1,15 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RdnsDetailPort {
+ //端口号
+ private Long portNum;
+ //协议
+ private String protocol;
+}
diff --git a/framework/src/main/java/org/example/vo/RdnsListVo.java b/framework/src/main/java/org/example/vo/RdnsListVo.java new file mode 100644 index 0000000..e312b29 --- /dev/null +++ b/framework/src/main/java/org/example/vo/RdnsListVo.java @@ -0,0 +1,17 @@ +package org.example.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RdnsListVo {
+ private Long id;
+
+ //rdns记录,扫描组织
+ private String rdns;
+ //出现次数
+ private Long num;
+}
diff --git a/framework/src/main/resources/application.yml b/framework/src/main/resources/application.yml new file mode 100644 index 0000000..69dd470 --- /dev/null +++ b/framework/src/main/resources/application.yml @@ -0,0 +1,22 @@ +server:
+ port: 7777
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/mesa_portscan?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+ username: root
+ password: password
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ servlet:
+ multipart:
+ max-file-size: 2MB
+ max-request-size: 5MB
+mybatis-plus:
+ configuration:
+ # 日志
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ #logic-delete-field: delFlag
+ #logic-delete-value: 1
+ #logic-not-delete-value: 0
+ id-type: auto
diff --git a/framework/target/classes/application.yml b/framework/target/classes/application.yml new file mode 100644 index 0000000..69dd470 --- /dev/null +++ b/framework/target/classes/application.yml @@ -0,0 +1,22 @@ +server:
+ port: 7777
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/mesa_portscan?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+ username: root
+ password: password
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ servlet:
+ multipart:
+ max-file-size: 2MB
+ max-request-size: 5MB
+mybatis-plus:
+ configuration:
+ # 日志
+ log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ global-config:
+ db-config:
+ #logic-delete-field: delFlag
+ #logic-delete-value: 1
+ #logic-not-delete-value: 0
+ id-type: auto
diff --git a/framework/target/classes/org/example/ResponseResult.class b/framework/target/classes/org/example/ResponseResult.class Binary files differnew file mode 100644 index 0000000..75fc0d2 --- /dev/null +++ b/framework/target/classes/org/example/ResponseResult.class diff --git a/framework/target/classes/org/example/WebApplication.class b/framework/target/classes/org/example/WebApplication.class Binary files differnew file mode 100644 index 0000000..7717bf2 --- /dev/null +++ b/framework/target/classes/org/example/WebApplication.class diff --git a/framework/target/classes/org/example/config/WebConfig.class b/framework/target/classes/org/example/config/WebConfig.class Binary files differnew file mode 100644 index 0000000..55eff23 --- /dev/null +++ b/framework/target/classes/org/example/config/WebConfig.class diff --git a/framework/target/classes/org/example/constants/SystemConstants.class b/framework/target/classes/org/example/constants/SystemConstants.class Binary files differnew file mode 100644 index 0000000..98861b5 --- /dev/null +++ b/framework/target/classes/org/example/constants/SystemConstants.class diff --git a/framework/target/classes/org/example/controller/IpController.class b/framework/target/classes/org/example/controller/IpController.class Binary files differnew file mode 100644 index 0000000..5b3d852 --- /dev/null +++ b/framework/target/classes/org/example/controller/IpController.class diff --git a/framework/target/classes/org/example/controller/PortController.class b/framework/target/classes/org/example/controller/PortController.class Binary files differnew file mode 100644 index 0000000..96eac7b --- /dev/null +++ b/framework/target/classes/org/example/controller/PortController.class diff --git a/framework/target/classes/org/example/controller/PortscanController.class b/framework/target/classes/org/example/controller/PortscanController.class Binary files differnew file mode 100644 index 0000000..aa4f7c4 --- /dev/null +++ b/framework/target/classes/org/example/controller/PortscanController.class diff --git a/framework/target/classes/org/example/controller/RdnsController.class b/framework/target/classes/org/example/controller/RdnsController.class Binary files differnew file mode 100644 index 0000000..6f188b1 --- /dev/null +++ b/framework/target/classes/org/example/controller/RdnsController.class diff --git a/framework/target/classes/org/example/entity/Ip.class b/framework/target/classes/org/example/entity/Ip.class Binary files differnew file mode 100644 index 0000000..c959799 --- /dev/null +++ b/framework/target/classes/org/example/entity/Ip.class diff --git a/framework/target/classes/org/example/entity/Port.class b/framework/target/classes/org/example/entity/Port.class Binary files differnew file mode 100644 index 0000000..bfffad6 --- /dev/null +++ b/framework/target/classes/org/example/entity/Port.class diff --git a/framework/target/classes/org/example/entity/Portscan.class b/framework/target/classes/org/example/entity/Portscan.class Binary files differnew file mode 100644 index 0000000..8d0a210 --- /dev/null +++ b/framework/target/classes/org/example/entity/Portscan.class diff --git a/framework/target/classes/org/example/entity/Rdns.class b/framework/target/classes/org/example/entity/Rdns.class Binary files differnew file mode 100644 index 0000000..dd25312 --- /dev/null +++ b/framework/target/classes/org/example/entity/Rdns.class diff --git a/framework/target/classes/org/example/enums/AppHttpCodeEnum.class b/framework/target/classes/org/example/enums/AppHttpCodeEnum.class Binary files differnew file mode 100644 index 0000000..38a6711 --- /dev/null +++ b/framework/target/classes/org/example/enums/AppHttpCodeEnum.class diff --git a/framework/target/classes/org/example/mapper/IpMapper.class b/framework/target/classes/org/example/mapper/IpMapper.class Binary files differnew file mode 100644 index 0000000..78409fe --- /dev/null +++ b/framework/target/classes/org/example/mapper/IpMapper.class diff --git a/framework/target/classes/org/example/mapper/PortMapper.class b/framework/target/classes/org/example/mapper/PortMapper.class Binary files differnew file mode 100644 index 0000000..83dc4b9 --- /dev/null +++ b/framework/target/classes/org/example/mapper/PortMapper.class diff --git a/framework/target/classes/org/example/mapper/PortscanMapper.class b/framework/target/classes/org/example/mapper/PortscanMapper.class Binary files differnew file mode 100644 index 0000000..dcae8bc --- /dev/null +++ b/framework/target/classes/org/example/mapper/PortscanMapper.class diff --git a/framework/target/classes/org/example/mapper/RdnsMapper.class b/framework/target/classes/org/example/mapper/RdnsMapper.class Binary files differnew file mode 100644 index 0000000..19bb2f8 --- /dev/null +++ b/framework/target/classes/org/example/mapper/RdnsMapper.class diff --git a/framework/target/classes/org/example/service/IpService.class b/framework/target/classes/org/example/service/IpService.class Binary files differnew file mode 100644 index 0000000..4e499b6 --- /dev/null +++ b/framework/target/classes/org/example/service/IpService.class diff --git a/framework/target/classes/org/example/service/PortService.class b/framework/target/classes/org/example/service/PortService.class Binary files differnew file mode 100644 index 0000000..715284e --- /dev/null +++ b/framework/target/classes/org/example/service/PortService.class diff --git a/framework/target/classes/org/example/service/PortscanService.class b/framework/target/classes/org/example/service/PortscanService.class Binary files differnew file mode 100644 index 0000000..966c430 --- /dev/null +++ b/framework/target/classes/org/example/service/PortscanService.class diff --git a/framework/target/classes/org/example/service/RdnsService.class b/framework/target/classes/org/example/service/RdnsService.class Binary files differnew file mode 100644 index 0000000..23104e2 --- /dev/null +++ b/framework/target/classes/org/example/service/RdnsService.class diff --git a/framework/target/classes/org/example/service/impl/IpServiceImpl.class b/framework/target/classes/org/example/service/impl/IpServiceImpl.class Binary files differnew file mode 100644 index 0000000..9447dd7 --- /dev/null +++ b/framework/target/classes/org/example/service/impl/IpServiceImpl.class diff --git a/framework/target/classes/org/example/service/impl/PortServiceImpl.class b/framework/target/classes/org/example/service/impl/PortServiceImpl.class Binary files differnew file mode 100644 index 0000000..04bdfc1 --- /dev/null +++ b/framework/target/classes/org/example/service/impl/PortServiceImpl.class diff --git a/framework/target/classes/org/example/service/impl/PortscanServiceImpl.class b/framework/target/classes/org/example/service/impl/PortscanServiceImpl.class Binary files differnew file mode 100644 index 0000000..7e6100f --- /dev/null +++ b/framework/target/classes/org/example/service/impl/PortscanServiceImpl.class diff --git a/framework/target/classes/org/example/service/impl/RdnsServiceImpl.class b/framework/target/classes/org/example/service/impl/RdnsServiceImpl.class Binary files differnew file mode 100644 index 0000000..47f7294 --- /dev/null +++ b/framework/target/classes/org/example/service/impl/RdnsServiceImpl.class diff --git a/framework/target/classes/org/example/utils/BeanCopyUtils.class b/framework/target/classes/org/example/utils/BeanCopyUtils.class Binary files differnew file mode 100644 index 0000000..ac881be --- /dev/null +++ b/framework/target/classes/org/example/utils/BeanCopyUtils.class diff --git a/framework/target/classes/org/example/vo/CountryListVo.class b/framework/target/classes/org/example/vo/CountryListVo.class Binary files differnew file mode 100644 index 0000000..92ce0bf --- /dev/null +++ b/framework/target/classes/org/example/vo/CountryListVo.class diff --git a/framework/target/classes/org/example/vo/IpDetail.class b/framework/target/classes/org/example/vo/IpDetail.class Binary files differnew file mode 100644 index 0000000..41cf724 --- /dev/null +++ b/framework/target/classes/org/example/vo/IpDetail.class diff --git a/framework/target/classes/org/example/vo/IpDetailPort.class b/framework/target/classes/org/example/vo/IpDetailPort.class Binary files differnew file mode 100644 index 0000000..28daa20 --- /dev/null +++ b/framework/target/classes/org/example/vo/IpDetailPort.class diff --git a/framework/target/classes/org/example/vo/IpDetailRdns.class b/framework/target/classes/org/example/vo/IpDetailRdns.class Binary files differnew file mode 100644 index 0000000..4b7eb50 --- /dev/null +++ b/framework/target/classes/org/example/vo/IpDetailRdns.class diff --git a/framework/target/classes/org/example/vo/IpListVo.class b/framework/target/classes/org/example/vo/IpListVo.class Binary files differnew file mode 100644 index 0000000..39349a1 --- /dev/null +++ b/framework/target/classes/org/example/vo/IpListVo.class diff --git a/framework/target/classes/org/example/vo/PageVo.class b/framework/target/classes/org/example/vo/PageVo.class Binary files differnew file mode 100644 index 0000000..d3d1a84 --- /dev/null +++ b/framework/target/classes/org/example/vo/PageVo.class diff --git a/framework/target/classes/org/example/vo/PortListVo.class b/framework/target/classes/org/example/vo/PortListVo.class Binary files differnew file mode 100644 index 0000000..83ca262 --- /dev/null +++ b/framework/target/classes/org/example/vo/PortListVo.class diff --git a/framework/target/classes/org/example/vo/RdnsDetail.class b/framework/target/classes/org/example/vo/RdnsDetail.class Binary files differnew file mode 100644 index 0000000..37bda5a --- /dev/null +++ b/framework/target/classes/org/example/vo/RdnsDetail.class diff --git a/framework/target/classes/org/example/vo/RdnsDetailIp.class b/framework/target/classes/org/example/vo/RdnsDetailIp.class Binary files differnew file mode 100644 index 0000000..71bb170 --- /dev/null +++ b/framework/target/classes/org/example/vo/RdnsDetailIp.class diff --git a/framework/target/classes/org/example/vo/RdnsDetailPort.class b/framework/target/classes/org/example/vo/RdnsDetailPort.class Binary files differnew file mode 100644 index 0000000..e21c01c --- /dev/null +++ b/framework/target/classes/org/example/vo/RdnsDetailPort.class diff --git a/framework/target/classes/org/example/vo/RdnsListVo.class b/framework/target/classes/org/example/vo/RdnsListVo.class Binary files differnew file mode 100644 index 0000000..3c64afb --- /dev/null +++ b/framework/target/classes/org/example/vo/RdnsListVo.class diff --git a/framework/target/framework-1.0-SNAPSHOT.jar b/framework/target/framework-1.0-SNAPSHOT.jar Binary files differnew file mode 100644 index 0000000..61b194b --- /dev/null +++ b/framework/target/framework-1.0-SNAPSHOT.jar diff --git a/framework/target/maven-archiver/pom.properties b/framework/target/maven-archiver/pom.properties new file mode 100644 index 0000000..e4258fd --- /dev/null +++ b/framework/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven
+#Thu Apr 20 14:25:08 CST 2023
+version=1.0-SNAPSHOT
+groupId=org.example
+artifactId=framework
diff --git a/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..d8cedde --- /dev/null +++ b/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,42 @@ +org\example\controller\ArticleController.class +org\example\service\impl\CategoryServiceImpl.class +org\example\WebApplication.class +org\example\mapper\IpMapper.class +org\example\mapper\PortMapper.class +org\example\mapper\ArticleMapper.class +org\example\mapper\RdnsMapper.class +org\example\service\impl\PortscanServiceImpl.class +org\example\ResponseResult.class +org\example\service\impl\IpServiceImpl.class +org\example\vo\HotArticleVo.class +org\example\service\impl\ArticleServiceImpl.class +org\example\service\impl\PortServiceImpl.class +org\example\controller\CategoryController.class +org\example\service\PortscanService.class +org\example\vo\IpDetailPort.class +org\example\entity\Portscan.class +org\example\service\ArticleService.class +org\example\entity\Port.class +org\example\service\impl\RdnsServiceImpl.class +org\example\vo\IpDetail.class +org\example\enums\AppHttpCodeEnum.class +org\example\controller\RdnsController.class +org\example\utils\BeanCopyUtils.class +org\example\constants\SystemConstants.class +org\example\controller\IpController.class +org\example\mapper\PortscanMapper.class +org\example\service\IpService.class +org\example\vo\IpDetailRdns.class +org\example\service\PortService.class +org\example\entity\Ip.class +org\example\entity\Rdns.class +org\example\vo\IpListVo.class +org\example\controller\PortController.class +org\example\entity\Category.class +org\example\mapper\CategoryMapper.class +org\example\config\WebConfig.class +org\example\entity\Article.class +org\example\vo\CategoryVo.class +org\example\controller\PortscanController.class +org\example\service\CategoryService.class +org\example\service\RdnsService.class diff --git a/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..2cef8a3 --- /dev/null +++ b/framework/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,43 @@ +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Category.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\IpMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\PortMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\PortscanServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\IpDetailPort.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\ArticleController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\ArticleMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\PortServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\HotArticleVo.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\PortscanMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Portscan.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\RdnsServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\config\WebConfig.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\PortController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\IpDetailRdns.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\constants\SystemConstants.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Port.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\CategoryVo.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\CategoryServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\WebApplication.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\CategoryMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\CategoryController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Article.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\ArticleServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\PortscanService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\IpService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\PortscanController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\CategoryService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\RdnsService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\PortService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Ip.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\mapper\RdnsMapper.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\ArticleService.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\IpDetail.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\enums\AppHttpCodeEnum.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\entity\Rdns.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\service\impl\IpServiceImpl.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\IpListVo.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\vo\PageVo.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\RdnsController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\ResponseResult.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\controller\IpController.java +D:\workplace\VS-Code-JAVA\MESA-portscan-detection\framework\src\main\java\org\example\utils\BeanCopyUtils.java diff --git a/framework/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/framework/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/framework/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>org.example</groupId> + <artifactId>MESA-portscan-detection</artifactId> + <packaging>pom</packaging> + <version>1.0-SNAPSHOT</version> + <modules> + <module>framework</module> + </modules> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <java.version>1.8</java.version> + </properties> + <dependencyManagement> + + + <dependencies> + <!-- SpringBoot的依赖配置--> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>2.5.0</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <!--fastjson依赖--> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>1.2.33</version> + </dependency> + <!--jwt依赖--> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt</artifactId> + <version>0.9.0</version> + </dependency> + <!--mybatisPlus依赖--> + <dependency> + <groupId>com.github.yulichang</groupId> + <artifactId>mybatis-plus-join</artifactId> + <version>1.2.4</version> + </dependency> + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + <version>3.5.1</version> + </dependency> + + <!--阿里云OSS--> + <dependency> + <groupId>com.aliyun.oss</groupId> + <artifactId>aliyun-sdk-oss</artifactId> + <version>3.10.2</version> + </dependency> + + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>easyexcel</artifactId> + <version>3.0.5</version> + </dependency> + + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger2</artifactId> + <version>2.9.2</version> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger-ui</artifactId> + <version>2.9.2</version> + </dependency> + </dependencies> + + + </dependencyManagement> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.1</version> + <configuration> + <source>${java.version}</source> + <target>${java.version}</target> + <encoding>${project.build.sourceEncoding}</encoding> + </configuration> + </plugin> + </plugins> + </build> +</project> |
