python–ntohll和htonll的实现(转载)

Python渗透测试之网络嗅探与欺骗 文章目录网络数据嗅探编写一个网络嗅探工具常见的过滤器。调用WireShark来查看数据包ARP的原理与缺陷中间人欺骗编写一个完整的ARP欺骗程序使用 socket来实现例子 如果想要彻底了解一个网络,那么最好的办法就是对网络中的流量进行 嗅探 在本章中将会编写几个嗅探工具,这些嗅探工具可以用来窃取网络中 明文 传输的密码,监视网络中的数据流向,甚至可以收集远程登录所使用的NTLM数据包(这个数据包中包含登录用的用户名和使用Hash加密的密码) 网络数据嗅探 编写一个网络嗅探工具 在Scapy中提供了一种专 阅读详情
可以利用python中的struct包中的如下东东进行转换:  
1、字节序:  
Character Byte order Size and alignment
@ native native
= native standard
< little-endian standard
> big-endian standard
! network (= big-endian) standard

2、字节数  
Format C Type Python Notes
x pad byte no value  
c char bytes of length 1  
b signed char integer (1)
B unsigned char integer  
? _Bool bool (2)
h short integer  
H unsigned short integer  
i int integer  
I unsigned int integer  
l long integer  
L unsigned long integer  
q long long integer (3)
Q unsigned long long integer (3)
f float float  
d double float  
s char[] bytes (1)
p char[] bytes (1)
P void * integer  

3、自定义函数  

使用struct,相当轻松

import struct  
htonll =
 lambda a:struct.unpack('!Q', struct.pack('Q', a) )[0]
ntohll = lambda a:struct.unpack('Q', struct.pack('!Q', a))[0]

ntohs, ntohl, htons,htonl对比详解 ntohs =net to host short int 16位htons=host to net short int 16位ntohl =net to host long int 32位htonl=host to net long int 32位 网络字节顺序NBO(Network Byte Order) 按从高到低的顺序存储,在网络上使用同一的网络字节顺序,可避免兼容性问题; 主机字节顺序HBO(Host Byte Order) 不同的机器HBO不相同,与CPU的设计有关,数据的顺序是由CP 阅读详情

相关推荐

【学习笔记-QGIS】 QGIS从零快速上手

安装文章参考:https://zhuanlan.zhihu.com/p/370633306。

Xcong_Zhu的博客 1万+

python 网络字节序转换_python通过ntohl和htonl等函数实现主机字节序和网络字节序相互转换...

Python的socket库提供了将数据在网络字节序和主机字节序之间相互转换的函数。有什么作用呢?在编写低层网络应用时,或许需要处理通过电缆在两台设备之间传送的低层数据。在这种操作中,需要把主机操作系统发出的数据转换成网络格式,或者做逆向转换,因为这两种数据的表示方式不一样。技术点解析:1、定义convert_integer()函数,注意函数格式(以后都会提醒这个,要养成习惯)2、socket库中...

weixin_39608132的博客 534

电源完整性之Cadence Sigrity Power DC_电热协同仿真

之前和大家分享过电源完整性之仿真设计原理链接: link.今天接着上一篇文章总结一下电源直流压降的的仿真操作流程及一些simulation中的设置参数,用到的是Cadence Sigrity 中的Power DC组件,来操作一下电热协同仿真,下面开始享受仿真的快乐吧: 第0步:仿真简介 电热协同仿真把电和热相互的影响考虑到了一起。因为电导率并不是固定不变的,而是和温度有关,随着温度的升高导电率会下降。同样电流流径电阻的时候会产生热量,此热量为焦耳热。因此为了获得准确的仿真信息,应考虑电与热的互相影响,进行电

刘小同学的博客 1万+

使用ntohl和hlton的目的

这是因为市场上的cpu不同而产生的。例如intel的cpu,   高位在右边,低位在左边,而摩托罗拉的cpu,  低位在右边,高位在左边。所以如果两台使用不同的cpu的计算机通过网络连接的话,将会出现错误。例如16位摩托罗拉传送的整形1,到intel机器上,就变成了65535。     所以调用ntohl和hlton的目的在于,当将数据传送到网络上的时候,现将数据转换为固定的网络字节,接

shanjianzhicao的专栏 1188

手把手教你用Simulink搭建DSOGI-PLL模型(附完整代码下载)

本文详细介绍了在Simulink中搭建高鲁棒性DSOGI-PLL模型的完整工程实践指南。针对传统锁相环在非理想电网下的不足,文章深入剖析了双二阶广义积分器锁相环(DSOGI-PLL)的核心原理与优势,并提供了从模块构建、系统组装到参数整定与测试验证的全流程手把手教程,附有完整代码下载,助力工程师应对谐波、电压跌落等复杂电网工况。

weixin_29223603的博客 388

非sudo用户如何安全使用Docker:Rootless模式实战指南

Docker Rootless模式是一种基于Linux用户命名空间(userns)的容器运行时安全机制,它通过UID/GID映射、fuse-overlayfs文件系统和slirp4netns网络栈,在不提升权限的前提下实现容器隔离。其核心原理是将容器内root身份映射为宿主机非特权用户,从而规避docker组等价root的安全风险。相比传统root模式,Rootless在权限控制、逃逸防护和多租户隔离方面具备天然优势,适用于CI/CD流水线、Kubernetes边缘节点及受限生产环境。本文聚焦无sudo权限

weixin_30274627的博客 351

htonll 在linux上的实现

64位字节序转换函数htonll是windows平台上的函数,Linux平台下示提供此函数,这个地址提供了一个非常漂亮的函数,但是存在一些不足,没有进行本机的字节序判断,如果本机也是大端,那么,应该做的是不进行任何转换,直接输出,而这2个函数此时会出错 https://blog.youkuaiyun.com/jakejohn/article/details/90400411 uint64_t htonll(uint64_t val) { return (((uint64_t) htonl(val))...

闲人的专栏 4375

PCL K4PCS算法实现点云粗配准【2026最新版】

K4PCS算法实现点云粗配准。博客长期更新,本文最近一次更新时间为:2026年5月4日。

点云侠的博客 42万+

htonll和ntohll函数的实现

由于机器之间存在大小端的问题,所以需要一个统一的标准,那就是网络字节序,目前我们所知道的就是htonl,ntohl, htons,ntohs,这些用的比较多一些,对于long long类型还不知道怎么转换,下面我将给出具体解决办法,其实用到了htonl和ntohl和移位操作。 #include <stdio.h> #include <arpa/inet.h> #i...

孤独行者的专栏 1万+

14、多级快速多极子算法(MLFMA)详解

多级快速多极子算法(MLFMA)是一种高效加速矩阵向量乘法(MVM)的数值方法,广泛应用于电磁场积分方程求解中。该算法通过构建多级树结构,将MVM分解为近场直接计算和远场分组计算两部分,利用递归聚类、聚合-平移-分解三阶段处理远场相互作用,并结合采样、模式计算与优化策略,将计算复杂度从O(N^2)降低至O(N log N)。博文详细阐述了MLFMA的核心步骤、数学推导、计算复杂度及实际应用中的优化技术,如伽辽金方案改进、对称性利用和反插值方法,为大规模电磁问题的高效求解提供了系统性指导。

t8u9v0w1x的博客 242

【100%通过率】2023华为od机试C卷【围棋的气】Python 实现

围棋棋盘由纵横各19条线垂直相交组成,棋盘上一共19 x 19 = 361 个交点,对奔双方一方执白棋,一方执黑棋,落子时只能将棋子置于交点上。 “气”是围棋中很重要的一个概念,某个棋子有几口气,是指其上下左右方向四个相邻的交叉点中,有几个交叉点没有棋子,由此可知:

MISAYAONE的博客 1858

python 网络字节序转换_python网络编程:ntohl、htonl、ntohs、htons

代码:root@iZ94nil6ddfZ:~# cat ntohl.py#!/usr/bin/pythonimport socketfrom binascii import hexlifydef convert_integer():data = 1234print "Original: %s => Long host byte order : %s, Network byte order:%...

weixin_39667801的博客 770

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

7.19华为OD机试真题 新系统 - 物流仓储多维度成本利润综合查询系统 (Java/Py/C/C++/Js/Go)

算法大师! 618

网络编程_常用的基本函数介绍——htonl、ntohl、htons、ntohs

1、htonl函数 将主机的unsigned long值转换成网络字节顺序(32位)(一般主机跟网络上传输的字节顺序是不通的,分大小端),函数返回一个网络字节顺序的数字。 #include “stdafx.h” #include<stdio.h> #include<WinSock2.h> #pragma comment(lib,“ws2_32.lib”) int _tmain(int argc, _TCHAR* argv[]) { //u_long a = 0x12345678; /

m0_67400973的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

高低字节序转换(htonl、ntohl、htons、ntohs函数)

如果用IBM等大尾端机器,则没有这种字节顺序转换,但为了程序的可移植性,也最好用这个函数。网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。在Linux和Windows网络编程时需要用到htons和htonl函数,用来将主机字节顺序转换为网络字节顺序。不同的CPU有不同的字节序类型 这些字节序是指整数在内存中保存的顺序 这个叫做主机序。2、不同的CPU上运行不同的操作系统,字节序也是不同的,参见下表。

PlutoZuo的博客 1635

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

网络字节序与地址转换函数

网络字节序是大端编码, 编码方式有两种: ①小端编码:高位数字存放在高地址字节中,如0x1234,小端编码机器将12存放在高位地址字节,34存放在低地址字节中,将其转化为1字节的char时,高地址字节被丢弃,剩余低地址字节,就是34。 ②大端编码:高位数字存放在低地址字节中,将0x1234转化为1字节的char,高地址字节被丢弃,剩余低地址字节,即12。 htons函数将一个short类型从本机字节序转换为网络字节序。 #include<arpa/inet.h> uint32_t htonl(u

weixin_45673259的博客 1523

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

实现一个ntohll

实现一个ntohll 当从网络上接收到long long 这样类型的的数据包后,怎么将其转换成 本机的字节流呢? linux系统只提供了ntohs, ntohl 这样的函数, 其实,可以试用rpc/rpc.h中的XDR 来实现该功能: static long long ntohll (long long v) {     XDR x;     xdrll_t result;   

lin_FS的专栏 3528

c语言中htonl函数,在C ++中,是否有用于64位整数的“标准”类htonl函数?

I'm working on an implementation of the memcache protocol which, at some points, uses 64 bits integer values. These values must be stored in "network byte order".I wish there was some uint64_t htonll(...

weixin_34247778的博客 835

C++ 反序 swap32

C++ 反序 swap32

BeanGo的博客 740

htonl/htons以及ntohl/ntohs等函数使用说明

htonl/htons以及ntohl/ntohs等函数都是为了解决主机和网络字节序不同而实现的函数,不同的是使用情况不同:htonl/htons用在主机设置相关参数到网络之前,ntohl/ntohs是从网络读出参数到主机之前。 #include <arpa/inet.h> uint32_t htonl(uint32_t hostlong); ui...

gooogleman#foxmail.com 2050

【无标题】

大小端机器通信工程实践

weixin_40680426的博客 548

通俗易懂说字节序,大小端,网络序和主机序(2)htonl和ntohl 源码实现

通俗易懂说字节序,大小端,网络序和主机序(2)htonl和ntohl 源码实现1. htonl 内核源码实现2. ntohl3. 解释了为什么项目中的都用htonl 问题参考 1. htonl 内核源码实现 系统函数htonl在头文件 netinet/in.h中 # if __BYTE_ORDER == __BIG_ENDIAN /* The host byte order is the same as network byte order, so these functions are all just

哈尼的博客 3309

ntohl()头文件

ntohl() ntohl()指的是ntohl函数,是将一个无符号长整形数从网络字节顺序转换为主机字节顺序, ntohl()返回一个以主机字节顺序表达的数。     头文件 linux系统 :#include &lt;arpa/inet.h&gt; Windows系统 :#include&lt;Winsock2.h&gt; 函数形式 uint32_t n...

FY_2018的博客 9706
上一篇: python - 动态加载模块和类
下一篇: python模块之quopri: quoted-printable编解码
whackw
博客等级 码龄16年 203粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值