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中的defaultdict模块和namedtuple模块的简单入门指南
Apr 01 Python
Python统计日志中每个IP出现次数的方法
Jul 06 Python
python运行其他程序的实现方法
Jul 14 Python
Python实现Pig Latin小游戏实例代码
Feb 02 Python
TensorFlow高效读取数据的方法示例
Feb 06 Python
python针对excel的操作技巧
Mar 13 Python
python获取酷狗音乐top500的下载地址 MP3格式
Apr 17 Python
python3实现基于用户的协同过滤
May 31 Python
常用的10个Python实用小技巧
Aug 10 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 Python
Python如何把不同类型数据的json序列化
Apr 30 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
Thinkphp模板中使用自定义函数的方法
2012/09/23 PHP
PHP仿博客园 个人博客(1) 数据库与界面设计
2013/07/05 PHP
php中的静态变量的基本用法
2014/03/20 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
Laravel5.5 手动分页和自定义分页样式的简单实现
2019/10/15 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
JS控件的生命周期介绍
2012/10/22 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
浅谈js数据类型判断与数组判断
2016/08/29 Javascript
从0开始学Vue
2016/10/27 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
Python、Javascript中的闭包比较
2015/02/04 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
python获取当前目录路径和上级路径的实例
2018/04/26 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
2019/06/19 Python
python tkinter canvas使用实例
2019/11/04 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
德国体育用品网上商店:SC24.com
2016/08/01 全球购物
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
2014年企业员工工作总结
2014/12/09 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
Windows Server 2019 域控制器安装图文教程
2022/04/28 Servers