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实现快速多线程ping的方法
Jul 15 Python
python中的计时器timeit的使用方法
Oct 20 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
判断python字典中key是否存在的两种方法
Aug 10 Python
10分钟教你用Python实现微信自动回复功能
Nov 28 Python
python实现邮件发送功能
Aug 10 Python
python机器学习包mlxtend的安装和配置详解
Aug 21 Python
python多进程下的生产者和消费者模型
May 07 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
May 25 Python
Python ConfigParser模块的使用示例
Oct 12 Python
15个Pythonic的代码示例(值得收藏)
Oct 29 Python
Python实现生活常识解答机器人
Jun 28 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去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
JS 有名函数表达式全面解析
2010/03/19 Javascript
js Dialog 实践分享
2012/10/22 Javascript
js实现上传文件添加和删除文件选择框
2016/10/24 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
Vue开发中整合axios的文件整理
2017/04/29 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
详解jQuery获取特殊属性的值以及设置内容
2018/11/14 jQuery
Python实现求两个csv文件交集的方法
2017/09/06 Python
Python解析并读取PDF文件内容的方法
2018/05/08 Python
python采集微信公众号文章
2018/12/20 Python
python 图像平移和旋转的实例
2019/01/10 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Python + Flask 实现简单的验证码系统
2019/10/01 Python
python圣诞树编写实例详解
2020/02/13 Python
python中adb有什么功能
2020/06/07 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
美国波西米亚风格服装品牌:Show Me Your Mumu
2018/01/05 全球购物
美味咖啡的顶级烘焙师:Cafe Britt
2018/03/15 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
倡议书范文
2014/04/16 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
2015年小学中秋节活动总结
2015/03/23 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
记者节感言
2015/08/03 职场文书
Java 超详细讲解设计模式之中的抽象工厂模式
2022/03/25 Java/Android
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS