python原始套接字编程示例分享


Posted in Python onFebruary 21, 2014

下面开始构造HTTP数据包,

IP层和TCP层使用python的Impacket库,http内容自行填写。

#!/usr/bin/env python#-------------------------------------------------------------------------------
# Name:     raw_http.py
# Purpose:       construct a raw http get packet
#
# Author:    Yangjun
#
# Created:       08/02/2014
# Copyright:   (c) Yangjun 2014
# Licence:       <your licence>
#-------------------------------------------------------------------------------
import sys
import socket
from impacket import ImpactDecoder, ImpactPacket
def main():
    if len(sys.argv) < 3:
        print "Use: %s <src ip> <dst ip>" % sys.argv[0]
        print "Use: %s <src ip> <dst ip> <cnt>" % sys.argv[0]
        sys.exit(1)
    elif len(sys.argv) == 3:
        src = sys.argv[1]
        dst = sys.argv[2]
        cnt = 1
    elif len(sys.argv) ==4:
        src = sys.argv[1]
        dst = sys.argv[2]
        cnt = sys.argv[3]
    else:
        print "Input error!"
        sys.exit(1)
#print src, dst
    ip = ImpactPacket.IP()
    ip.set_ip_src(src)
    ip.set_ip_dst(dst)
    # Create a new ICMP packet of type ECHO.
    icmp = ImpactPacket.ICMP()
    tcp = ImpactPacket.TCP()
    tcp.set_th_sport(55968)
    tcp.set_th_dport(80)
    tcp.set_th_seq(1)
    tcp.set_th_ack(1)
    tcp.set_th_flags(0x18)
    tcp.set_th_win(64)
    tcp.contains( ImpactPacket.Data("GET /att/DIYLife/41264/528 HTTP/1.1\r\nHost: 192.168.111.1\r\nAccept-Encoding: identity\r\n\r\n"))
    ip.contains(tcp)
    # Open a raw socket. Special permissions are usually required.
    s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
    s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
    seq_id = 0
    while cnt >= 1:
        # Calculate its checksum.
        seq_id = seq_id + 1
        tcp.set_th_seq(seq_id)
        tcp.calculate_checksum()
        # Send it to the target host.
        s.sendto(ip.get_packet(), (dst,80))
        cnt= cnt -1
if __name__ == '__main__':
    main()

运行后抓包如下:

python原始套接字编程示例分享

Python 相关文章推荐
讲解Python中fileno()方法的使用
May 24 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
python正则实现提取电话功能
Feb 24 Python
对python抓取需要登录网站数据的方法详解
May 21 Python
python样条插值的实现代码
Dec 17 Python
Django连接数据库并实现读写分离过程解析
Nov 13 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
Python编程快速上手——正则表达式查找功能案例分析
Feb 28 Python
Python调用ffmpeg开源视频处理库,批量处理视频
Nov 16 Python
Python GUI库Tkiner使用方法代码示例
Nov 27 Python
python实现360皮肤按钮控件示例
Feb 21 #Python
python实现360的字符显示界面
Feb 21 #Python
python和pyqt实现360的CLable控件
Feb 21 #Python
python使用7z解压软件备份文件脚本分享
Feb 21 #Python
python发布模块的步骤分享
Feb 21 #Python
python列表操作使用示例分享
Feb 21 #Python
使用python统计文件行数示例分享
Feb 21 #Python
You might like
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
第七章 php自定义函数实现代码
2011/12/30 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
在for循环中length值是否需要缓存
2015/07/27 Javascript
js实现canvas保存图片为png格式并下载到本地的方法
2017/08/31 Javascript
angularjs实现猜大小功能
2017/10/23 Javascript
vue checkbox 全选 数据的绑定及获取和计算方法
2018/02/09 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
vue element和nuxt的使用技巧分享
2021/01/14 Vue.js
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
用python 制作图片转pdf工具
2015/01/30 Python
Python控制多进程与多线程并发数总结
2016/10/26 Python
python实现linux下抓包并存库功能
2018/07/18 Python
对python以16进制打印字节数组的方法详解
2019/01/24 Python
python实现共轭梯度法
2019/07/03 Python
python命令行工具Click快速掌握
2019/07/04 Python
python中open函数的基本用法示例
2019/09/07 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
Shell编程面试题
2016/05/29 面试题
人力资源管理毕业生自荐信
2013/11/21 职场文书
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
2014年纪检监察工作总结
2014/11/11 职场文书
员工辞职信范文大全
2015/05/12 职场文书
结婚司仪主持词
2015/06/29 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android