diff --git a/README.md b/README.md index ad4b5d1..c8d20e4 100644 --- a/README.md +++ b/README.md @@ -4,16 +4,17 @@ ## 项目概述 -该项目是一个基于Python的网络通信软件,使用Tkinter实现图形化界面。用户可以通过该软件发送ICMP、UDP或TCP报文到指定的目标地址和端口。软件会展示本机信息(主机名、MAC地址和IP地址),并允许用户选择源IP地址、目标地址、端口号以及报文类型进行发送。 +该项目是一个基于Python的网络通信软件,使用Tkinter实现图形化界面。用户可以通过该软件发送ICMP、UDP、TCP或DNS报文到指定的目标地址和端口。软件会展示本机信息(主机名、MAC地址和IP地址),并允许用户选择源IP地址、目标地址、端口号以及报文类型进行发送。 ## 功能 - 获取本机的主机名、MAC地址和IP地址。 - 用户输入目标地址和端口号,支持验证IP地址、域名和端口号的有效性。 -- 支持发送三种类型的报文:ICMP、UDP和TCP。 +- 支持发送四种类型的报文:ICMP、UDP、TCP和DNS。 - ICMP报文会进行校验和计算并发送。 - UDP和TCP报文会根据指定端口号构造并发送。 - TCP连接建立后可以发送简单的字符串数据。 +- DNS查询会向DNS服务器发送请求并解析响应,获取目标域名的IP地址。 - 提供错误处理机制,显示网络错误、输入错误等信息。 ## 使用方法 @@ -28,7 +29,7 @@ 在目标地址输入框中输入目标的IP地址或域名,目标端口则输入目标的端口号。 4. **选择报文类型:** - 用户可以选择发送ICMP、UDP或TCP类型的报文。 + 用户可以选择发送ICMP、UDP、TCP或DNS类型的报文。 5. **发送报文:** 点击“发送报文”按钮后,软件会构造并发送报文。如果目标地址、端口号或其他输入无效,软件会弹出错误提示。 @@ -45,37 +46,4 @@ - `struct`: 用于构造网络报文。 - `re`: 用于正则表达式匹配和验证。 -可以通过以下命令安装相关库: - -```bash -pip install tk -``` - -## 代码说明 - -- **获取本机信息**:`get_local_info()`函数获取本机的主机名、MAC地址和IP地址列表。 -- **输入验证**:通过正则表达式验证IP地址、域名和端口号的有效性。 -- **报文构造**:根据用户选择的报文类型,程序会构造相应的ICMP、UDP或TCP报文。报文会根据所需协议格式进行打包,并计算校验和(仅ICMP)。 -- **发送报文**:`send_packet()`函数根据输入的目标地址和端口号构造报文并通过相应的网络协议发送出去。 - -## 错误处理 - -- **网络错误**:如无法解析目标地址或网络连接失败,会显示错误信息。 -- **输入错误**:如输入的目标地址、端口号无效,会显示相应的提示。 -- **未知错误**:其他未预见的错误会通过弹窗提示用户。 - -## 示例截图 - -界面包括: - -- 本机信息显示。 -- 输入框和按钮,用于输入目标地址、端口和选择报文类型。 -- 显示发送结果的区域。 - -## 许可证 - -该项目使用MIT许可证,详情请见`LICENSE`文件。 - -## 联系方式 - -如果有任何问题或建议,欢迎通过邮件联系我:`fly6516@outlook.com` \ No newline at end of file +可以通过以下命令安装相关库: \ No newline at end of file