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使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
Python实现SVN的目录周期性备份实例
Jul 17 Python
Python 内置函数complex详解
Oct 23 Python
TensorFlow实现自定义Op方式
Feb 04 Python
python有序查找算法 二分法实例解析
Feb 18 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
Feb 25 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
pyspark给dataframe增加新的一列的实现示例
Apr 24 Python
浅析Python中的套接字编程
Jun 22 Python
Python FuzzyWuzzy实现模糊匹配
Apr 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中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP curl模拟登录带验证码的网站
2015/11/30 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
IE中radio 或checkbox的checked属性初始状态下不能选中显示问题
2009/07/25 Javascript
JS.getTextContent(element,preformatted)使用介绍
2013/09/21 Javascript
对之前写的jquery分页做下升级
2014/06/19 Javascript
js中数组排序sort方法的原理分析
2014/11/20 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
js表单中选择框值的获取及表单的序列化
2015/12/17 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
jquery.cookie.js实现用户登录保存密码功能的方法
2016/04/15 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
Vue2.0 实现移动端图片上传功能
2018/05/30 Javascript
简单通过settimeout看javascript的运行机制
2019/05/10 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
vue实现滑动超出指定距离回顶部功能
2019/07/31 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
python 切片和range()用法说明
2013/03/24 Python
Python 通配符删除文件的实例
2018/04/24 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
Python 矩阵转置的几种方法小结
2019/12/02 Python
Python实现word2Vec model过程解析
2019/12/16 Python
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
四年的个人工作自我评价
2013/12/10 职场文书
九年级政治教学反思
2014/02/06 职场文书
毕业论文评语大全
2014/04/29 职场文书
幼儿园辞职书
2015/02/26 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
晶体管单管来复再生式收音机
2021/04/22 无线电
深入理解python协程
2021/06/15 Python
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android