我试图通过我的系统的“eth1”接口发送一个原始的十六进制数据包。我写了下面的内容,当我执行它时没有看到任何错误。在
#! /usr/bin/python
import socket
class packet:
hexstr=""
def getpacket(self,hexs):
packet.hexstr=hexs
return packet.hexstr
# create a socket object
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.IPPROTO_IP)
# get local machine name
port = 9999
# bind to the port
s.bind(('eth1', port))
#s.setsockopt(IPPROTO_IP, IP_HDRINCL, 1)
pckt = packet()
data = pckt.getpacket("\x68\x65\x6c\x6c\x6f")
msg_send = s.send(data)
#msg_recv = s.recv(4096)
print msg_send
#print msg_recv
但是,当我在9999端口和接口上使用“tcpdump”并运行上述操作时,我没有看到任何数据包被捕获。在
^{pr2}$我做错什么了?在
终于成功了。以下是我实际代码中的一些重要代码片段:
相关问题 更多 >
编程相关推荐