48 lines
2.1 KiB
Markdown
48 lines
2.1 KiB
Markdown
# 网络通信软件
|
||
|
||
## 项目概述
|
||
|
||
该项目是一个基于Python的网络通信软件,使用Tkinter实现图形化界面。用户可以通过该软件发送ICMP、UDP、TCP或DNS报文到指定的目标地址和端口。软件会展示本机信息(主机名、MAC地址和IP地址),并允许用户选择源IP地址、目标地址、端口号以及报文类型进行发送。
|
||
|
||
## 功能
|
||
|
||
- 获取本机的主机名、MAC地址和IP地址。
|
||
- 用户输入目标地址和端口号,支持验证IP地址、域名和端口号的有效性。
|
||
- 支持发送四种类型的报文:ICMP、UDP、TCP和DNS。
|
||
- ICMP报文会进行校验和计算并发送。
|
||
- UDP和TCP报文会根据指定端口号构造并发送。
|
||
- TCP连接建立后可以发送简单的字符串数据。
|
||
- DNS查询会向DNS服务器发送请求并解析响应,获取目标域名的IP地址。
|
||
- 提供错误处理机制,显示网络错误、输入错误等信息。
|
||
- **支持发送IP报文,构造并发送自定义IP头部和负载数据。**
|
||
|
||
## 使用方法
|
||
|
||
1. **启动软件:**
|
||
运行该Python脚本文件,会弹出一个图形化界面。
|
||
|
||
2. **选择源IP地址:**
|
||
软件会自动列出本机的所有IP地址,用户可以从下拉框中选择一个作为源IP。
|
||
|
||
3. **输入目标地址和端口:**
|
||
在目标地址输入框中输入目标的IP地址或域名,目标端口则输入目标的端口号。
|
||
|
||
4. **选择报文类型:**
|
||
用户可以选择发送ICMP、UDP、TCP、DNS或IP类型的报文。
|
||
|
||
5. **发送报文:**
|
||
点击“发送报文”按钮后,软件会构造并发送报文。如果目标地址、端口号或其他输入无效,软件会弹出错误提示。
|
||
|
||
6. **查看结果:**
|
||
软件会在界面上显示报文发送是否成功的信息,或者在发生错误时显示相应的错误提示。
|
||
|
||
## 安装依赖
|
||
|
||
该项目使用Python 3,并依赖以下库:
|
||
|
||
- `tkinter`: 用于创建图形化界面。
|
||
- `socket`: 用于网络通信。
|
||
- `struct`: 用于构造网络报文。
|
||
- `re`: 用于正则表达式匹配和验证。
|
||
|
||
可以通过以下命令安装相关库: |