ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 系统运维 >> 每日一题PYTHON如何发送16进制的UDP查询包?

每日一题PYTHON如何发送16进制的UDP查询包?

来源:网络整理     时间:2016-02-23     关键词:

本篇文章主要介绍了"每日一题PYTHON如何发送16进制的UDP查询包?",主要涉及到方面的内容,对于系统运维感兴趣的同学可以参考一下: 原文数据:common_data.py# -*- coding: utf-8 -*- """ # # Authors: limanman # OsChina: ...

原文数据:

common_data.py

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""

# 查询StatusHelper状态是否正常
statushelper_isalive = '''15 20 00 b0 65 31 32 30 37 65 33 38 62 37 64 34 31
62 35 32 2c 61 63 61 38 35 33 33 34 31 31 31 36 34 65 39 36 2c 36 35 64 37 33
35 36 35 39 31 63 33 38 30 65 36 2c 38 63 61 33 66 64 66 32 65 64 39 62 66 32
64 66 2c 34 37 31 65 35 62 33 61 36 62 64 33 37 66 31 35 2c 63 30 61 33 63 35
62 34 34 32 30 65 35 65 36 62 2c 30 32 64 32 30 35 33 35 31 32 30 37 38 62 61
35 2c 31 39 30 37 33 61 38 62 33 36 36 37 30 62 39 36 2c 30 36 37 37 34 65 64
64 34 66 63 36 39 37 66 61 2c 39 64 61 37 33 36 63 31 66 31 34 34 61 39 61 31
32 30 30 30 30 30 30 2c 32 2c 32 30 30 2c 32 30 2c 32 30 30 30 2c 32 30 30 30
30 30 2c 32 32 32 32 32 2c 32 32 32 2c 32 32 2c 32 32 32 32 32 32 00'''

if __name__ == '__main__':
    print statushelper_isalive

具体要求:

1.发送如上16进制数据包到UDP指定端口,线上状态查询服务器功能测试

代码实现:

# -*- coding: utf-8 -*-
"""
#
# Authors: limanman
# OsChina: http://my.oschina.net/pydevops/
# Purpose:
#
"""
import socket
import struct
from common_data import statushelper_isalive

# 转换为二进制流
def struct_pack(hex_strs):
    """Pack hex_strs to """

    all_strs = ''
    hex_strs = hex_strs.replace('\n', ' ')
    hex_list = hex_strs.split()

    for cur_item in hex_list:
        # 十六进制转换为10进制然后在组包二进制字符流
        all_strs += struct.pack('B', int(cur_item, 16))
    return all_strs

def main():
    """Main function."""

    # 组包解密
    print repr(struct_pack(statushelper_isalive))

if __name__ == '__main__':
    main()

以上就介绍了每日一题PYTHON如何发送16进制的UDP查询包?,包括了方面的内容,希望对系统运维有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_332613.html

相关图片

相关文章