# 项目简介

把一些常用的功能写成函数



---



# 函数大全

```
XiaoKang/

# 常用指令
├──  报错信息()				# 发生报错时调用，可以格式化报错信息方便查看
├──  时间_文件_天()			# 用于文件命名【2026-03-16】
├──  时间_文件_时()			# 用于文件命名【2026-03-16_10】
├──  时间_文件_分()			# 用于文件命名【2026-03-16_10-55】
├──  时间_文件_秒()			# 用于文件命名【2026-03-16_10-55-28】
├──  时间_正常()				# 不能命名文件，只能打印【2026-03-16 10:55:28】
├──  时间_日志()				# 用于记录日志【2026-03-16 10:55:28.724013】

├──  sqlite数据库操作		# sqlite数据库的操作
│   ├──  连接连接()			# 连接指定文件的数据库
│   ├──  新增数据()			# 新增的数据写入数据库，不会自动提交
│   ├──  读取数据()			# 读取数据库数据
│   ├──  修改数据()			# 修改数据库数据
│   ├──  创建表()			# 创建新表格在数据库
│   ├──  执行SQL()			# 直接执行sqlite
│   ├──  删除数据()			# 删除数据库数据【懒狗还没写】
│   ├──  提交()				# 保存到本地文件数据库
│   ├──  断开()				# 断开连接，结束操作

├──  shell					# shell反弹
│   └──  win1()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  win2()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  win3()				# 反弹shell到nc -lvnp 端口（Windwows）
│   └──  linux1()			# 反弹shell到nc -lvnp 端口（Linux）
│   └──  linux2()			# 反弹shell到nc -lvnp 端口（Linux）

# 一些小工具
├──  截图()					# 截取屏幕
├──  解析ip()				# 输入域名列表，解析出多个ip
├──  查归属()				# 输入ip列表，解析出归属
├──  获取title()				# 输入url，获取title 和 状态码
├──  发送邮件()				# 发送邮件到指定邮箱
├──  批量发送邮件()			# 批量发送邮件到指定邮箱

#实用功能
├──  批量docx()				# 从表格里面获取数据批量生成docx文件

└── 结束
```



# 函数使用方法



## 1.常用指令

### 1.1 报错信息()

讲解功能：在代码执行的时候，如果报错可以执行这个，查看详细的报错信息

示例代码：

```
try:
    print('1'+1)
except:
    print(BaoCuoXingxi('json'))
```

输出：

```
{
    "报错类型":"<class 'TypeError'>",
    "报错信息":"can only concatenate str (not \"int\") to str",
    "报错文件":"C:\\xxx\\xxxx\\xxxxx\\test_1.py",
    "报错行数":6
}
```



---



## 2.sqlite数据库操作

### 2.1 连接()

用于连接指定数据库文件，连接后在操作，文件可以不存在，不存在的文件会自动创建

输入格式：（sqlite 的 db文件 位置）

返回格式：（是否成功，提示信息）

列子：

```
a = sqlite数据库操作('xk.db')
b=a.连接()
print(b)		
```

输出格式：（是否成功，提示信息）

```
(True, '数据库连接成功')
```



### 2.2 创建表()

在数据库中创建表格，设置字段格式，默认字段类型是“TEXT”

输入格式：

​    创建表(self, 表名: str, 字段: list, 字段类型: dict = {}, 字段默认值="TEXT")

​      表名：创建的数据库表名

​      字段：需要创建的字段列表，['A', 'b', 'c', 'D']

​      字段类型：字段类型字典，{'A': 'integer',  'c': 'real', 'D': 'bolo'}，默认值TEXT

​      字段默认值：字段默认值，默认TEXT

返回格式：（是否成功，提示信息）

列子：

```
b=a.创建表(表名='Information', 字段=['A', 'b', 'c', 'D'], 字段类型={'A': 'integer',  'c': 'real', 'D': 'bolo'}, 字段默认值="TEXT")
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '创建成功')
```



### 2.3 新增数据()

新增数据可以快速循环写入多个数据。【需要提交才会保存】

输入格式：

​    新增数据(self, 表名: str, 数据: dict)

​      表名：新增数据的数据库表名

​      数据：新增的数据字典

返回格式：（是否成功，提示信息）

列子：

```
b=a.新增数据(表名='Information', 数据={'A': 1, 'b': 'b', 'c': 3.1415926, 'D': True})
print(b)
b=a.提交()
print(b)
```

输出格式：（是否成功，新增数据的序号）

输出格式：（是否成功，提示信息）

```
(True, 3)
(True, '事务提交成功')
```



### 2.4 读取数据()

读取数据库数据，设置查看的字段，匹配条件，显示多少行数据

输入格式：

​    读取数据(self, 表名: str, 查看字段: list = ["*"], 判断匹配: list = [], 显示行数: list = [])

​      表名：查询的数据库表名

​      查看字段：需要查看的字段，默认['*']，表示全部字段，['A', 'b', 'c', 'D']，表示只查看A、b、c、D字段

​      判断匹配：需要匹配的条件，默认[]，表示不匹配，['A=1', 'and', 'b="2b"']，表示匹配A=1且b="2b"，分隔是空格

​      显示行数：需要显示的行数，默认[]，表示全部行，[0,10]，表示显示从第0行后显示10行

返回格式：（是否成功，提示信息）

列子：

```
b=a.读取数据(表名='Information', 查看字段=['A', 'b', 'c', 'D'], 判断匹配=['A=1', 'and', 'b="b"'], 显示行数=[0, 1])
print(b)
```

输出格式：（是否成功，读取的数据[dict,dict]）

```
(True, [(1, 'b', 21.45116, 0)])
```



### 2.5 修改数据()

修改已经存在的数据，设置匹配条件，和修改的数据。【需要提交才会保存】

输入格式：

​    修改数据(self, 表名: str, 查数据: list, 写数据: dict)

​      表名：修改数据的数据库表名

​      查数据：需要匹配的条件字典，{'A': 1, 'b': '2b'}，表示匹配A=1且b="2b"

​      写数据：需要修改的字段字典，{'启动项': 2, '系统进程': 2, 'usb插拔记录': 2}

返回格式：（是否成功，提示信息）

列子：

```
b=a.修改数据(表名='Information', 查数据=[('A', '=', 1), 'and', ('b', '=', 'b')], 写数据={'c': 21.45116, 'd': False})
print(b)
b=a.提交()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '修改成功')
(True, '事务提交成功')
```



### 2.6 执行SQL()

直接执行复杂或者固定的sql语句

输入格式：（sql语句）

返回格式：（是否成功，提示信息）

列子：

```
b=a.执行SQL('SELECT *,rowid "NAVICAT_ROWID" FROM "main"."Information" LIMIT 0,1000')
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, [(1, 'b', 21.45116, 0, 1), (1, '2b', 3.1415926, 1, 2), (1, 'b', 21.45116, 0, 3), (1, '2b', 3.1415926, 1, 4)])
```



### 2.7 删除数据()【懒狗还没写】



输入格式：

返回格式：（是否成功，提示信息）

列子：

```

```

输出格式：（是否成功，提示信息）

```

```



### 2.8 提交()

提交存在变化的数据，比如：新增、修改、删除

输入格式：无输入数据

返回格式：（是否成功，提示信息）

列子：

```
b=a.提交()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '事务提交成功')
```



### 2.9 断开()

断开数据库连接，防止抱死

输入格式：无输入数据

返回格式：（是否成功，提示信息）

列子：

```
b=a.断开()
print(b)
```

输出格式：（是否成功，提示信息）

```
(True, '数据库连接断开')
```



---



## 3.shell（shell反弹）

### 3.1 win1()





### 3.2 win2()





### 3.3 win3()





### 3.4 linux1()





### 3.5 linux2()







---



## 4.小工具

### 4.1 截图()

会直接显示你当前屏幕截图，全屏，自动适应分辨率

参数：

​    save_path (str|None): 保存路径，例如 C:\\test.png，为None则不保存

​    width (int|None): 截图宽度，为None则全屏

​    height (int|None): 截图高度，为None则全屏

​    start_x (int): 起始X坐标

​    start_y (int): 起始Y坐标

```
a = 截图()
a.show()
```



### 4.2 解析IP()

输入域名，多线程调用多个DNS服务器解析域名ip

参数：

​    域名列表：每个域名一个元素

​    DNS：DNS服务器列表，默认使用常用DNS服务器

​    返回类型：返回数据类型【list】

```
a=解析ip(['www.baidu.com', 'www.sina.com.cn'])
print(a)
```





### 4.3 查归属()

查询ip的归属地，按顺序输出，记得自己去重

参数：[ip,ip,ip]

列子：

```
a = 查归属(['103.235.46.102', '103.235.46.115', '183.2.172.177', '110.242.70.57', '45.113.192.101'])
print(a)
```

输出：

```
[['103.235.46.102', '中国香港香港 百度云'], ['103.235.46.115', '中国香港香港 百度云'], ['183.2.172.177', '中国广东广州 电信'], ['110.242.70.57', '中国河北保定 联通'], ['45.113.192.101', '新加坡 百度云']]
```



### 4.4 获取title()【懒狗还没写】





### 4.5 发送邮件()

发送一封邮件

```
a = 发送邮件('XX@qq.com', 'XX@qq.com', 'POP3-KEY', '测试邮件标题', '测试邮件内容')
print(a)
```



### 4.6 批量发送邮件()

发送一堆邮件

```
a = 批量发送邮件('XX@qq.com', ['XX1@qq.com', 'XX2@qq.com'], 'POP3-KEY', '测试邮件标题', '测试邮件内容')
print(a)
```



---



## 5.实用工具

### 5.1 批量docx()

把表格里面的数据直接变成docx，实现批量自动修改，欢迎反馈bug

```
from xiaokang.p批量docx import 批量docx

docx模板路径 = "批量word报告\\{ceshi}.docx"
xlsx表格路径 = "批量word报告\\1.xlsx"
输出目录='批量word报告\\cs\\'

批量docx(docx模板路径, xlsx表格路径, 输出目录)
```



docx模板格式如下，每个变量都要用"{}"符号括起来

![image-20260316151956309](.\md图片\image-20260316151956309.png)



xlsx文件格式

每个表的表头就是docx里面的变量，文件名也是变量，可以自定义文件名

![image-20260316152137939](.\md图片\image-20260316152137939.png)



文件生成如下

![image-20260316152239472](.\md图片\image-20260316152239472.png)



文件内容如下

![image-20260316152333816](.\md图片\image-20260316152333816.png)









---



# 安装方法

pip install xiaokang



---



# 使用示例

导入函数会吧，不会自己学



---



# 依赖说明

目前没用使用其他依赖，都是用本地库



---



# 作者信息

作者：小康、米汤、鲁班



---
