python以下导入包的格式错误的是_ICMP python上的错误数据包

如何创建帧icmp

我在python上标记格式错误的包导入套接字,结构,uuid,子进程,fcntl,time,random

列表项

from binascii import hexlify,unexlify from datetime导入datetime

tarRed=原始输入('Ingrese nombre de Tarjeta de Red Utilizada:')

subprocess.call(['ifconfig',tarRed,'promisc'])pt=0x0800秒=

插座.插座(socket.AF_包, SOCK峎生, 插座.htons(铂))

s、 绑定(柏油,pt)

#GETCheck def getchecksum(ip_头,大小):cksum=0 pointer=0,而size>1:cksum+=int((str(“%02x”%(ip_header[pointer],))

+str(“%02x”%(ip_头[pointer+1],)),16)size-=2 pointer+=2#如果size:#这说明了头是奇数的情况

#cksum+=int(ip_头[指针])cksum=(cksum>>16)+

(cksum&0xffff)cksum+=(cksum>>16)返回(~cksum)&

0xFFFF def_checksum(data):#计算标题和

ip_header_sum=总和(解包结构(“6H”,数据))#添加进位

ip_header_sum=(ip_header_sum&0xFFFF)+(ip_header_sum>>8&

0xFFFF)ip_header_sum=~ip_header_sum&0xFFFF return

ip_header_sum def i_checksum(checksum_packet):总计=0个单词

=len(checksum_packet)/2,用于块输入解包结构("!%sH“%num_words,checksum_packet[0:num_words*2]):total+=chunk if

len(校验和数据包)%2:总计+=ord(校验和数据包[-1])<<8

total+=total>>16返回(~total+0xffff&0xffff)def checksum(source_string): sum = 0 countTo =

(len(source_string)/2)*2 count = 0 while count

thisVal = ord(source_string[count + 1])*256 + ord(source_string[count]) sum = sum + thisVal sum = sum &

0xffffffff

count = count + 2 if countTo

0xffffffff sum = (sum >> 16) + (sum & 0xffff) sum = sum + (sum

>> 16) answer = ~sum answer = answer & 0xffff #answer = answer >> 8 | (answer << 8 & 0xff00) return answer def

checksuma(source_string): sum = 0 countTo =

(len(source_string)/2)*2 count = 0 while count

thisVal = ord(source_string[count + 1])*256 + ord(source_string[count]) sum = sum + thisVal sum = sum &

0xffffffff

count = count + 2 if countTo

0xffffffff sum = (sum >> 16) + (sum & 0xffff) sum = sum + (sum

>> 16) answer = ~sum answer = answer & 0xffff answer = answer >> 8 | (answer << 8 & 0xff00) return answer def ultimo(str):

csum = 0

countTo = (len(str) / 2) * 2

count = 0

while count < countTo:

thisVal = ord(str[count+1]) * 256 + ord(str[count])

csum = csum + thisVal

csum = csum & 0xffffffff

count = count + 2

if countTo < len(str):

csum = csum + ord(str[len(str) - 1])

csum = csum & 0xffffffff

csum = (csum >> 16) + (csum & 0xffff)

csum = csum + (csum >> 16)

answer = ~csum

answer = answer & 0xffff

answer = answer >> 8 | (answer << 8 & 0xff00)

return answer

#GETCheck

#MACs adst='ffffffffffff' mac_destino = unhexlify(adst) ma = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) info =

fcntl.ioctl(ma.fileno(), 0x8927, struct.pack('256s', tarRed[:15]))

asrc = ''.join(['%02x:' % ord(char) for char in info[18:24]])[:-1]

sd = asrc.split(':') asrc = sd[0]+sd[1]+sd[2]+sd[3]+sd[4]+sd[5]

mac_origen = unhexlify(asrc)

#MACs cabEther = struct.pack('!6s6sh',mac_destino,mac_origen,pt)

#datosIP

#version = '4'

#IHL = '5' tipoServicio = unhexlify('00') longitudT = struct.pack('!BB',00,24) identificador = struct.pack('!BB',00,01)

flag_Pos = 0x4000 tiempoVida = 05 ptIP = unhexlify('01') SCC = 0

#IPs ip = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) ipO= str( socket.inet_ntoa(fcntl.ioctl(ip.fileno(),0x8915,struct.pack('256s',

tarRed[:15]))[20:24])) ipO1 = ipO.split('.') ipOr =

struct.pack("!BBBB",int(ipO1[0]),int(ipO1[1]),int(ipO1[2]),int(ipO1[3]))

ipD = raw_input('Ingrese la direccion IP destino: ') ipD1 =

ipD.split('.') ipDest =

struct.pack("!BBBB",int(ipD1[0]),int(ipD1[1]),int(ipD1[2]),int(ipD1[3]))

#IPs

#datosIP cabIP = struct.pack('!1s1s2s2shB1sH4s4s',unhexlify('45'),tipoServicio,longitudT,identificador,flag_Pos,tiempoVida,ptIP,SCC,ipOr,ipDest)

SCC = checksum(cabIP) cabIP =

struct.pack('!1s1s2s2shB1sH4s4s',unhexlify('45'),tipoServicio,longitudT,identificador,flag_Pos,tiempoVida,ptIP,socket.htons(SCC),ipOr,ipDest)

#datosIcmp tipo = 8 codigo = 0x00 check = 0x0000 identificador = int((id(1) * random.random()) % 65535) secuencia = 0x0000

#datos = 'qwertyasdfghzxcvbn0102030405060708091011121314151617181920' datos =

1 * 'Q'

#datosIcmp cabIcmp = struct.pack('!bbHHh',tipo,0,0,identificador,1) my_checksum = ultimo(cabIcmp + datos) cabIcmp =

struct.pack('!bbHHh',tipo,0,socket.htons(my_checksum),identificador,1)

cabIcmp = cabIcmp + datos tiempo = datetime.now() print tiempo for i

in range(15): s.send(cabEther + cabIP + cabIcmp,0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/430617.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

win7/8/10安装过程中将动态磁盘转为basic

在分区界面运行ShiftF10在命令窗口运行Diskpartlist diskpartselect disk n(n为磁盘号)cleanconvert xxxPS:xxx代表要转换的结果。基本类型&#xff1a;Basic&#xff1b;动态类型&#xff1a;dynamic&#xff1b;MBR磁盘&#xff1a;MBR&#xff1b;GPT磁盘&#xff1a;GPT转载…

2016年4月 之 《C程序设计语言》

C程序设计语言 转载于:https://www.cnblogs.com/maoxiaowai/p/5404308.html

python绘画音频_人工智能下的音频还能这样玩!!!!

人工智能音频处理库—librosa(安装与使用)序言一、libsora安装pypicondasource二、librosa常用功能核心音频处理函数音频处理频谱表示幅度转换时频转换特征提取绘图显示三、常用功能代码实现读取音频提取特征提取Log-Mel Spectrogram 特征提取MFCC特征绘图显示绘制声音波形绘制…

保存到数据库乱码mysql_Linux下MySQL保存进去数据为乱码的解决办法

MySQL默认的字符编码是latin1,而我用的是utf-8,存入数据库就变成了?????这样的乱码&#xff0c;解决方法&#xff1a;1、windows下:修改my.ini文件&#xff0c;有两处default-character-setlatin1都改为default-character-setutf8重启既可。2、linux下&#xff1a;vi /etc…

Oracle创建表_01

1、 --创建表 create table zctest( id number(9) not null primary key, classname varchar2(40) not null) 2、 3、 转载于:https://www.cnblogs.com/dbskill/p/5407146.html

mySQL数据库中的备份代码_MySQL中的备份数据库

我目前正在学习SQL。我在windows 10-cmd上运行mysql 8.0.16cli,我以root mysql用户身份登录,并以管理员身份运行cmd。我想做的是备份我新创建的数据库。这是我的显示数据库输出:mysql> show databases;--------------------| Database |--------------------| information_s…

网页版四则运算(未全部完成)

这次作业一直在做&#xff0c;一直在拖着&#xff0c;总感觉心里亏欠点什么&#xff0c;但是人就是这样&#xff0c;一件事情本来做起来就没有太多成功的几率&#xff0c;就想着延长工期&#xff0c;那就一直拖着吧&#xff0c;拖得时间越久你就会越发清晰地意识到自己已经非常…

webapp 微信开发适配问题

文章摘自&#xff1a;http://www.cnblogs.com/oksite/p/4630462.html 前段时间由于公司要做微信app 前端主要有我一个人独立开发 分享一下自己独立开发微信app的一些经验 首先说下 适配兼容的问题&#xff1b; 主要的问题还是安卓手机参差不齐&#xff0c;每个手机都有自带一个…

python安装copy_python中copy和deepcopy 的区别

请简述赋值&#xff0c; 深拷贝和浅拷贝的区别?(python中如何拷贝一个对象?)直接赋值(li1 li): 只传递对象的引用&#xff0c; li1指向对象li的内存地址空间,因此&#xff0c; 原有列表li改变&#xff0c; 被赋值的li1也会做相应的改变.浅拷贝:li和li2的内存地址不同,但是子…

iOS中的小知识点

1.tableView隐藏滚动条 self.tableView.showsVerticalScrollIndicator NO; 2.关于属性 使用assign: 对基础数据类型 &#xff08;NSInteger&#xff0c;CGFloat&#xff09;和C数据类型&#xff08;int, float, double, char, 等等&#xff09; 使用copy&#xff1a; 对NSStri…

一个DataGridView辅助类

DataGridView是在用C#做windows界面程序时常用到的控件,DataGridView的功能非常多,用起来也非常复杂 例如1. 我想在每行前面显示行编号,则需要先设置RowHeadersVisible为true,然后,在添加RowPostPaint事件,而RowPostPaint写起来也大同小异,这就非常没有必要.期望一个DataGridVi…

java单例设计模式_Java设计模式之单例模式详解

在Java开发过程中&#xff0c;很多场景下都会碰到或要用到单例模式&#xff0c;在设计模式里也是经常作为指导学习的热门模式之一&#xff0c;相信每位开发同事都用到过。我们总是沿着前辈的足迹去做设定好的思路&#xff0c;往往没去探究为何这么做&#xff0c;所以这篇文章对…

java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)

接着上篇了解一下java压缩实现过程&#xff0c;下面的是支持 单文件 或 文件夹 压缩的实现&#xff0c;使用递归。效果&#xff1a;代码&#xff1a;package com.gx.compress;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;imp…

学习笔记day5:inline inline-block block区别

1. block元素可以包含block元素和inline元素&#xff1b;但inline元素只能包含inline元素。要注意的是这个是个大概的说法&#xff0c;每个特定的元素能包含的元素也是特定的&#xff0c;所以具体到个别元素上&#xff0c;这条规律是不适用的。比如 P 元素&#xff0c;只能包含…

java处理中文字符串_Java实现读取文章中重复出现的中文字符串

在上个星期阿里巴巴一面的时候&#xff0c;最后面试官问我如何把一篇文章中重复出现的词或者句子找出来&#xff0c;当时太紧张&#xff0c;答的不是很好。今天有时间再来亲手实现一遍。其实说白了也就是字符串的处理&#xff0c;所以难度并不是很大。以下是代码和运行效果&…

python的collection系列-默认字典(defaultdict)

默认字典&#xff0c;能定义默认值为其他类型 1 #dic1 {}2 #dic1["k1"].append("kkkkk") #正常情况会报错3 #print(dic1)4 5 import collections6 dic collections.defaultdict(list) #指定字典的值为列表7 dic["k1"].append("…

jquery获取java对象的属性_jQuery - 获得内容和属性

jQuery - 获得内容和属性jQuery 拥有可操作 HTML 元素和属性的强大方法。jQuery DOM 操作jQuery 中非常重要的部分&#xff0c;就是操作 DOM 的能力。jQuery 提供一系列与 DOM 相关的方法&#xff0c;这使访问和操作元素和属性变得很容易。提示&#xff1a;DOM Document Objec…

用border画三角形

<html> <head> <title>用border画三角形</title> <style>#one{width:0px;height:0px;margin:0 auto;border-top:50px solid white;border-right:50px solid white;border-bottom:50px solid orange;border-left:50px solid white;} </style&g…

iOS9适配(包括APNs)的改变

https://github.com/ChenYilong/iOS9AdaptationTips转载于:https://www.cnblogs.com/zkzzkz/p/5426658.html

javascript知识点记录(2)

1.js 异步加载和同步加载 异步加载模式也叫非阻塞模式&#xff0c;浏览器在下载js的同时&#xff0c;同时还会执行后续的页面处理&#xff0c; 在script标签内&#xff0c;用创建一个script元素&#xff0c;并插入到document中&#xff0c;这样就是异步加载js文件了 //以前的一…