我最近一直在做一个原始数据包的程序。我们最近有一个关于生包的讲座,所以我一直在努力学习和做我的教授告诉我的事情。我的程序有问题,它出现了一个错误,说目标地址是必需的,它是原始的,所以我不想做socket.connect(destaddr),即使这样可以修复错误。这是我的代码:

下面是类和函数:#not real mac address to protect privacy also removed preamble

class packet(object):

b = ""

def __init__(self, payload):

self.payload = payload

def ether(self):

#preamble = "55555555555555D5"

macdest = "123456789101" #my mac address - needed to remove colons

macsource = "123456789101" #router mac address without colons

ethertype = "0800" #removed 0x because it is not needed

fcs = "" #frame check sequence none so far

frame = macdest+macsource+ethertype

return frame

def ip(self): #in hexadecimal

version = "4" #ipv4 hex

ihl = "5" #header length hex

dscp = "00" #default

ecn = "00" #default

length = "36" #ether-24 + ip-20 + tcp-30 = 54 to hexa = 35

idip="0000" #random id

flags = "40" #dont fragment flag is 2 to hex is 4

offset = "00" #space taker

ttl = "40"#hex(64) = 40

protocol = "06" #for tcp

checksum = "0000"

ipaddrfrom = "c0a8010a"

ipaddrto = "c0a80101"

datagram = version+ihl+dscp+ecn+length+idip+flags+offset+ttl+protocol+checksum+ipaddrfrom+ipaddrto

return datagram

def tcp(self):

portsrc = "15c0" #5568

portdest = "0050" #80

syn = "00000000"

ack = "00000000"

nonce = "80"

fin = "10"

windowscale = "813b"

checksum = "0000"

segment = portsrc+portdest+syn+ack+nonce+fin+windowscale + checksum

return segment

def getpacket(self):

frame = self.ether()

datagram = self.ip()

segment = self.tcp()

payload = self.payload

packet = frame+datagram+segment+payload

a = 0

b = ""

for char in packet:

a = a+1

b = b + char

if a == 4:

b = b + " "

a=0

self.fmtpacket = b

return packet

def raw():

s = socket(AF_INET, SOCK_RAW, IPPROTO_IP)

s.bind(('192.168.1.10', 0))

pckt = packet("")

netpacket = pckt.getpacket()

print "Sending: " + pckt.fmtpacket

print ""

s.sendall(netpacket)

data = s.recv(4096)

print data

python拦截tcp数据包_发送低级原始tcp数据包python相关推荐

  1. java udp包_基于UDP协议的数据包收发程序(代码+报告)Java

    [实例简介] 设计要求: 1)按照UDP协议数据包发送方式实现用户端之间的通信. 2)统计包的发送和接收数,计算数据包的丢失数. 3)设计美观易用的图形界面. [实例截图] [核心代码] 基于UDP协 ...

  2. python 数组合并排重_并排深度学习:Julia vs Python

    python 数组合并排重 Julia could possibly be the biggest threat to Python. For a variety of applications, J ...

  3. python怎么编写wireshark抓的包_使用Wireshark 抓取数据包

    Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一  ...

  4. 计算机网络课程设计——发送和接收TCP数据包以及发送和捕获ARP数据包

    1.课程设计要求: 发送和接收TCP数据包:TCP是一种面向连接的.可靠的传输层协议.TCP协议工作在网络层IP协议的基础上.本课程设计的目的是设计一个发送和接收TCP数据包的程序,其功能是填充一个T ...

  5. 如何获取握手包_白话详解TCP的三次握手到底做了些什么

    作 者:雨林 来 源:cnblogs.com/yuilin 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(标星)公众号,重磅干货 ...

  6. 多队列 部分队列没有包_记一次TCP全队列溢出问题排查过程

    简介:记一次TCP全队列溢出问题排查过程 1. 前言 本文排查的问题是经典的TCP队列溢出问题,因TCP队列问题在操作系统层面没有明显的指标异常,容易被忽略,故把排查过程分享给大家. 2. 问题描述 ...

  7. python数据分析要学多久_如何七周成为数据分析师18:Python的新手教程

    本文是<如何七周成为数据分析师>的第十八篇教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉Python,大可不必再看这篇文章,或只挑选部分. Python是近年来 ...

  8. python怎么用大数据分析师_如何七周成为数据分析师18:Python的新手教程

    本文是<怎样 七周成为数据剖析 师>的第十八篇教程,假定 想要了解 写作初衷,能够 先行阅读七周指南.温馨提示:假定 您曾经 熟习 Python,大可不用 再看这篇文章,或只选择 部分 . ...

  9. python requests form data_python使用requests发送multipart/form-data请求数据

    def client_post_mutipart_formdata_requests(request_url,requestdict): #功能说明:发送以多部分表单数据格式(它要求post的消息体分 ...

最新文章

  1. php成绩管理前段模板,php学生成绩管理系统(模板).doc
  2. 自顶向下 与自底向上解决01 背包问题
  3. mysql insert 结果集_SELECT查询结果集INSERT到数据表
  4. 单元测试之道一:NUnit基础
  5. 深入浅出Javascript闭包
  6. 谋定5G+工业互联网-陈肇雄:经信研究体系化应用部署规划
  7. 计算机考研:计算机网络五大考点解析
  8. Spring Boot 终极清单
  9. Apache从入门到精通
  10. 天国近了(一) -- 揭穿OOP神话
  11. python自动化办公入门书籍-Python自动化办公实战教程2020最新带源码
  12. Codeforces-691C-Exponential notation(模拟)Java 以及输入的处理
  13. java过滤器验证app用户token_SpringCloud笔记之Zuul过滤器PreFilter实现token校验(简单样例)...
  14. Modelsim SE 下载安装、注册详细教程
  15. 各纬度气候分布图_世界气候类型分布图高清版(世界气候分布高清地图)V1.0 免费版...
  16. php判断搜索为空,【杂谈】PHP怎么判断变量是否为空和是否有值存在?(图文+视频教程)...
  17. [推荐]docker中文学习文档
  18. 搭建moon服务器,实现zerotier飞速穿透
  19. Ubuntu桌面消失后重装你桌面系统教程
  20. 职业也如学习一样,逆水行舟不进则退

热门文章

  1. [转] PyTorch 0.4新版本 升级指南 no_grad
  2. Linkerd2安装和使用
  3. OPNET网络仿真分析-1.6、OPNET软件使用
  4. Crackme015
  5. 关于JQuery的异步注册
  6. FastReport 数据区二级显示
  7. ZC_汇编指令_cmp
  8. PHP魔术方法小结.md
  9. 奇特的Local System权限(转载)
  10. 对MBProgressHUD进行二次封装并精简使用