基础配置
上次用python做东西都是半年以前了,基本上什么基础都忘光了,翻出以前的程序看了半天才想起来import以后还要引用一下,TAT……所以写一个非常非常基础的运行在liunx系统中的数据包内容生成程序,就是最近要做的一个功能的简化版,加深一下自己的印象,一边写一边查资料,让我们开始吧!
PS:因为一边做一边写的,所以很多都不全的,后续会补完~
安装python和VScode
本程序需要一些基础的python库和VScode作为编译环境,所以需要先进行安装,安装过程省略~
新建client_stats.py文件
新建一个python文件,命名为client_stats.py,我们将程序运行所需要的所有基础配置信息都放在里面。
# client_stats.py
class ClientStats():
"""客户端的统计信息"""
def __init__(self):
"""初始化统计信息"""
self.client_version = '0.0.1'
self.settings = 0
self.reset_stats()
# 记录发包数据
self.spa_num = 0
def reset_stats(self):
""""更新运行期间可能变化的统计信息"""
self.firewall_stats = 0
该文件包含了客户端版本等信息。
创建spa_function.py文件
在这个文件中,我们构建程序运行所需要的大部分函数。
import time
import socket
import random
from client_stats import ClientStats
def get_random_str(length):
"""
生成随机字符串
输入参数:length 字符串长度
输出参数:str 随机字符串
"""
random_str = str(random.choice(range(2)))
return random_str
def get_time_stamp():
"""
生成时间戳
输入参数:
输出参数:time_stamp 时间戳
"""
time_stamp = time.time()
print(time.strftime('%Y-%m-%d %H:%M:%S'))
return time_stamp
def get_client_version():
"""
生成客户端版本
输入参数:调用客户端版本查询函数
输出参数:version 客户端版本
"""
version = client_setting.client_version
return version
def get_user_name():
"""
获取用户名信息
"""
def get_spa_packet():
"""
生成SPA数据包
输入参数:
输出参数:固定长度
"""
return 0
创建spa.py文件
在该文件中,创建程序运行主函数。
print('连接申请模板:62201 Alice 192.168.0.1')
port_str = '62201'
user_name = 'Alice'
des_address = '192.168.0.1'
# port_str, user_name, des_address = input("请输入连接信息[以空格分割]:").split()
client_setting = ClientStats()
print('目的端口为:' + str(get_port(port_str)))
print('发包时间为:' + str(get_time_stamp()))
print('客户端版本号为:' + get_client_version())
任务列表
- 数据包所需信息
- 数据包构建
- UDP包构建
- UDP包解析
- 数据分发