Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用python克隆tcp/ip数据包_Python_Sockets_Ethernet_Tcp Ip - Fatal编程技术网

用python克隆tcp/ip数据包

用python克隆tcp/ip数据包,python,sockets,ethernet,tcp-ip,Python,Sockets,Ethernet,Tcp Ip,我用wireshark捕获了一些包,我想用我自己的软件(用python编写)重新发送它们。我正在使用套接字编程,但我是python新手,所以这可能是一个愚蠢的问题 我的软件正在做它应该做的三方握手,并发送一个包含我的信息的包。但问题是,它发送的信息并不正确 我就是这么做的: MESSAGE = 0x13EC s.send(MESSAGE) 我希望数据包包含十六进制值13EC,但它现在以字符串的形式发送它,比如0x13EC。如果我这样说 MESSAGE = '13EC' …它只是发送零 谁能告

我用wireshark捕获了一些包,我想用我自己的软件(用python编写)重新发送它们。我正在使用套接字编程,但我是python新手,所以这可能是一个愚蠢的问题

我的软件正在做它应该做的三方握手,并发送一个包含我的信息的包。但问题是,它发送的信息并不正确

我就是这么做的:

MESSAGE = 0x13EC
s.send(MESSAGE)
我希望数据包包含十六进制值13EC,但它现在以字符串的形式发送它,比如0x13EC。如果我这样说

MESSAGE = '13EC'
…它只是发送零

谁能告诉我我做错了什么

提前感谢,

巴特尔

顺便说一句,我使用的是python 3.6.2。

在编写MESSAGE=0x13EC时,实际上是在创建一个值为5100的整数。但据我所知,套接字无法发送整数

相反,您要做的是以\x13和\xEC的形式发送字节数据。 为此,您只需执行以下操作:

MESSAGE = b'\x13\xEC'
s.send(MESSAGE)
这应该可以做到。 或者您可以使用来打包数据

from struct import pack
VALUE = 0x13EC # 5100
MESSAGE = pack('H', VALUE) # 5100 -> b'\x13\xEC'
s.send(MESSAGE) # b'\x13\xEC'

非常感谢,至少完成了大部分工作!但我现在还有另外一个问题,如果我在里面放了很多数据,这些位就会移位,或者以任何其他不同于预期的方式移位。你能在里面放多少数据有限制吗?@gamma_spec你指的是pack?如果是这样,您需要将多个包'H',5100+包'Q',5组合在一起。