wireshake抓包,飞秋发送信息,python
# coding=utf-8
#import socket
#udp=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
#udp.connect(('localhost',2425))
#udp.send('1:100:aaaaa:zhang:32:hello every body')
#udp.send('1_lbt4_10#32899#002481627512#0#0#0:1289671407:flyingzl:flyingz l:288:一日不见,如三月兮')
#coding=utf-8
import dpkt
import sendpkt
from socket import inet_aton
from time import strftime
import socket
import types
import uuid
#本地网关MAC地址,可以通过如下方式获取:
#C:\Users\Administrator>arp -a
#接口: 192.168.0.100 --- 0xb
# Internet 地址 物理地址 类型
# 192.168.0.1 00-03-47-ca-e4-5c 动态
MASK_MAC='4c-5e-0c-b1-50-29'
def get_local_mac():
'''
获得本机Mac地址
'''
mac=uuid.uuid1().hex[-12:]
return '-'.join([mac[(i-1)*2:2*i] for i in range(1,7)])
def send_msg(kwargs):
'''
发送消息,kwargs参数为一个dict对象
'''
if type(kwargs) is not types.DictType:
return
#本机ip地址
local_ip=kwargs.get('src',socket.gethostbyname(socket.gethostname()))
#转码后的源ip地址
src_ip=inet_aton(local_ip)
#转码后的目的ip地址
dst_ip=inet_aton(kwargs.get('dst'))
#本机mac地址
local_mac=kwargs.get('src_mac',get_local_mac())
#转码后的源mac地址
src_mac=pack_mac(local_mac)
#判断remote_ip和local_ip是否在同一个网段
#转码后的目的mac地址
dst_mac=pack_mac(kwargs.get('dst_mac'))\
if trans(local_ip)==trans(kwargs.get('dst')) else pack_mac(MASK_MAC)
host=kwargs.get('host',socket.gethostname())
user=kwargs.get('user','User')
msg=kwargs.get('msg','Hello')
#找到第一个网络端口,根据自己的情况修改
#安装了VirtualBox、VMWare或者有无线网卡的同学得自己修改下
device=sendpkt.findalldevs()[0]
#飞鸽监听本地的UDP 2425端口
udp=dpkt.udp.UDP(dport=2425,sport=2425)
#向飞鸽发送消息命令字
#6291458表示下线
#6291457表示上线
#288表示发送信息
#如果是飞秋,65664这个状态会在对方上显示为两个太阳
msg="1_lbt4_10#65664#%s#0#0#0:%s:%s:%s:288:%s" \
%(local_mac.replace('-',''),int(strftime('%m%d%H%M%S'))+100000000,user,host,msg)
msg=msg.encode("utf-8")
udp.data+=msg
udp.ulen=len(udp) ip=dpkt.ip.IP(src=src_ip,dst=dst_ip,data=udp,p=dpkt.ip.IP_PROTO_UDP)
#重新计算ip的长度,不然消息发送不出去
ip.len=len(ip) ether=dpkt.ethernet.Ethernet(
dst=dst_mac,
src=src_mac,
type=0x0800,
data=ip
)
sendpkt.sendpacket(str(ether),device) def trans(ip,mask='255.255.255.0'):
'''
判断两个ip地址是否在同一个网段
'''
str=[]
ip=ip.split(".")
mask=mask.split(".")
for index,item in enumerate(ip):
str.append(int(item)&int(mask[index]))
return str def pack_mac(mac,pattern='-'):
'''
网卡地址转为以太网Mac地址
例如将"08-00-27-ba-f7-e5"转为"\x08\x00'\xba\xf7\xe5"
'''
mac=mac.split(pattern.lower())
return "".join([chr(int('0x'+x,16)) for x in mac]) if __name__=="__main__":
s={
'src':'192.168.155.1',
'dst':'192.168.155.1',
'src_mac':'ff-ff-ff-ff-ff-ff',
#这个地址最好别写错,可以从飞鸽上看到好友的Mac地址
'dst_mac':'ff-ff-ff-ff-ff-ff',
'host':'哈哈',
'user':'呵呵',
'msg':'加班呀?'
}
send_msg(s)
wireshake抓包,飞秋发送信息,python的更多相关文章
- win7系统下的飞秋发送文件失败问题
飞秋发送文件失败这个问题大多数是由防火墙引起的1.检查windows自带的防火墙设置,在左侧的"允许程序通过windows防火墙"查看飞秋是否存在,不存在则增加之,公网.专网都勾选 ...
- 让Chrome浏览器抓包接口数据秒变 python 代码
简介 uncurl是一个库,允许您将curl请求转换为使用requests 的python代码.由于Chrome网络检查器具有的“copy as cURL”,因此该工具对于用python重新创建浏览器 ...
- 利用WinPcap模拟网络包伪造飞秋闪屏报文
起因 不知道从什么时候开始,同事开始在飞秋上发闪屏振动了,后来变本加厉,成了每日一闪.老闪回去也比较麻烦,作为程序猿呢,有没有什么偷懒的办法呢?(同事负责用户体验,不大懂编程).然后尝试了以下思路: ...
- Python+Requests接口测试教程(1):Fiddler抓包工具
本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测 ...
- day29 python 套接字socket TCP udp 形式发送信息的区别
我们经常把socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信. socket起源于UNIX,在 ...
- Wireshark抓包实例分析TCP重复ACK与乱序
转载请在文首保留原文出处: EMC 中文支持论坛https://community.emc.com/go/chinese 介绍 TCP 的一大常见问题在于重复 ACK 与快速重传.这一现象的发生也是由 ...
- Android 抓包,监控流量工具之 mitmproxy
转:http://greenrobot.me/devpost/how-to-debug-android-http-get-started/ mitmproxy实践教程之调试 Android 上 HTT ...
- Ubuntu下的iptux和Windows下的飞秋互传文件
1.问题 当Linux下的iptux是安装源里的版本时,存在下面的问题:Windows下的飞秋可以向Linux下的iptux发送文件,iptux接受正常Linux下的iputx给Windows下的飞秋 ...
- 第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解
第三百三十节,web爬虫讲解2—urllib库爬虫—实战爬取搜狗微信公众号—抓包软件安装Fiddler4讲解 封装模块 #!/usr/bin/env python # -*- coding: utf- ...
随机推荐
- Android NDK目录介绍
交叉编译 在一个平台上去编译另一个平台上可以执行的本地代码 cpu平台---arm x86 mips 操作系统平台---windows linux mac os 原理 模拟不同平台的特性去编译代码 j ...
- Android 中BaseActivty
Base接口 IBaseActivity package liu.basedemo.base; /** * 基类接口 * Created by 刘楠 on 2016/7/28 0028.23:05 * ...
- Routine
前端要学习三个部分:HTML,CSS,JavaScript(简称JS),因此首先明确三个概念:HTML是内容层,它的目的是表示一个HTML标签在页面里是个什么角色. CSS是样式层,它的目的是表示一块 ...
- .NET 多语言支持解决方案(转)
asp.net 2.0中的App_GlobalResources可以用来解决本地化的问题,程序会根据浏览器的语言首选项自动判断显示出本地化的界面. 首先在App_GlobalResources新建re ...
- Maven基础配置--nexus私服配置
登录nexus私服后台,按照下图1-3的顺序进行添加仓库: 其中步骤3有三种仓库类型(Type)进行选择 1. Hosted Repository:本地仓库,在私服服务器上存放用户自行上传的jar包: ...
- 0022 Java学习笔记-面向对象-继承、多态、组合
继承的特点 单继承:每个子类最多只有一个直接父类,注意是直接父类,间接父类个数不限 注意父类的概念:A-->B-->C-->D,在这里,ABC都是D的父类,C是D的直接父类,AB是D ...
- c# ref 的作用
Usage of ref keyword in C# When we pass a value type variable as a parameter, then it passes its va ...
- srping MVC 工程简单搭建
Spring版本:3.2.2.RELEASE 第一步:导入必须的jar包 spring-beans.jar spring-context.jar spring-core.jar spring-expr ...
- QT学习第2天
回顾: 1.构建一个QT工程步骤 (1)qmake -project (2)qmake (3)make 2.两个常用的组件 QLabel 标签 QPushButton 按钮 --------- ...
- 通过url 下载文件
1.问题简介 通过文件的url,将文件下载到本地.文件存储的位置为:tomcat服务器的文件夹(通过读取properties文件:可看:http://www.cnblogs.com/0201zcr/p ...