Python脚本比较网络数据包内容,获取相同部分
2012-11-18 18:13
435 查看
#!/bin/python3 # We use this script to check the same part in a network packet # present as hex like below # # 97:C1:19:E2:4B:1A:1F:D4:A8:95:6B:16:2F:4E:1C:CB:81:06:5F:95 # D7:7A:19:28:EB:E0:4A:1D:A8:D6:C3:68:6F:DF:CA:E6:8D:E2:A3:1B # # if there are same part exist, the result like this # # 97:C1:19:E2:4B:1A:1F:D4:A8:95:6B:16:2F:4E:1C:CB:81:06:5F:95 # D7:7A:19:28:EB:E0:4A:1D:A8:D6:C3:68:6F:DF:CA:E6:8D:E2:A3:1B # ^^ ^^ # # with a ^ below the part # there can be more two messages in the file import sys if len(sys.argv) == 2: message_box = open(sys.argv[1]) else: print('Usage: ' + sys.argv[0] + ' file') sys.exit() message_original = [] messages = [] for message in message_box: message_original.append(message.rstrip()) messages.append(message.rstrip().split(":")) if len(messages) < 2: print('Sorry, there should be at least two message') sys.exit() min_length = len(messages[0]) for message in messages: if min_length > len(message): min_length = len(message) same_position = [] for i in range(min_length): value = messages[0][i] isSame = True for j in range(1, len(messages)): if value != messages[j][i]: isSame = False break if (isSame): same_position.append(i) for message in message_original: print(message) if len(same_position) == 0: print('No same position exist') else: for i in range(min_length): if i in same_position: print('^^', end = '') else: print(' ', end = '') if i == min_length - 1: print('') else: print(' ', end = '') print('With offset:', end = ' ') for offset in same_position: print(offset, end = ' ') print('')
该脚本可对保存在指定文件中的十六进制进行比较,获取相同的部分,打印出来。工作需要分析网络数据包,找特征,靠眼看实在是太伤眼睛了。只好写个脚本做一下比较。有时间了在对脚本进行扩充,争取还可以比较出本组相同部分跟另外一组的差异。
相关文章推荐
- python查询功能,查询文件内容,获取需要的部分并返回,很实用的
- Python脚本控制的WebDriver 常用操作 <十七> 获取测试对象的属性及内容
- php中比较两个数组内容,相同部分保留,不同的加上
- paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
- paip.uapi 获取网络url内容html 的方法java php ahk c++ python总结.
- shell脚本示例:批量比较多个文件的内容是否相同
- Python比较两个文件(txt,csv等)相同内容合并同一文件/文本时间大小比较大小
- python多线程获取网络数据,与单线程进行比较
- Python脚本- 递归遍历文件夹,获取指定扩展名文件,修改文件内容
- linux系统使用python获取内存使用信息脚本分享
- 循环神经网络教程第二部分-用python,numpy,theano实现一个RNN
- 获取属性的各个部分的内容(权限修饰符 变量类型 变量名)
- Unity3D 网络通信_HTTP协议:获取网络图片、内容
- 循环神经网络教程-第二部分 用python numpy theano实现RNN
- python的subprocess:子程序调用(调用执行其他命令);获取子程序脚本当前路径问题
- Python获取CPU使用率、内存使用率、网络使用状态
- Python模拟登陆知乎,获取收藏夹内容
- python3获取两个日期之间所有日期,以及比较大小的实例
- Python获取CPU使用率、内存使用率、网络使用状态