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中的异常处理学习笔记
Jan 28 Python
Python实现八大排序算法
Aug 13 Python
python下载微信公众号相关文章
Feb 26 Python
Python时间差中seconds和total_seconds的区别详解
Dec 26 Python
python pandas利用fillna方法实现部分自动填充功能
Mar 16 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
python能做哪些生活有趣的事情
Sep 09 Python
Python字符串查找基本操作代码案例
Oct 27 Python
Ubuntu权限不足无法创建文件夹解决方案
Nov 14 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
python中count函数知识点浅析
Dec 17 Python
用python获取txt文件中关键字的数量
Dec 24 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
七款最流行的PHP本地服务器分享
2013/02/19 PHP
新浪SAE云平台下使用codeigniter的数据库配置
2014/06/12 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
php抽象类用法实例分析
2015/07/07 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
比较全的JS checkbox全选、取消全选、删除功能代码
2008/12/19 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
javascript 自定义回调函数示例代码
2014/09/26 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
jQuery Mobile动态刷新页面样式的实现方法
2016/05/28 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
JavaScript实现简单的四则运算计算器完整实例
2017/04/28 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
详解Node.js amqplib 连接 Rabbit MQ最佳实践
2019/01/24 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
详解Python中列表和元祖的使用方法
2015/04/25 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
浅析Git版本控制器使用
2017/12/10 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
python 删除字符串中连续多个空格并保留一个的方法
2018/12/22 Python
python把1变成01的步骤总结
2019/02/27 Python
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
甜品蛋糕店创业计划书范文
2014/02/06 职场文书
李培根演讲稿
2014/05/22 职场文书
活动总结新闻稿
2014/08/30 职场文书
机关作风建设心得体会
2014/10/22 职场文书
教师节联欢会主持词
2015/07/04 职场文书
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技
关于Redis的主从复制及哨兵问题
2022/06/16 Redis
JS前端轻量fabric.js系列物体基类
2022/08/05 Javascript