欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年02月21日 16:20:31   作者:  
在實(shí)驗(yàn)中需要自己構(gòu)造單獨(dú)的HTTP數(shù)據(jù)報(bào)文,而使用SOCK_STREAM進(jìn)行發(fā)送數(shù)據(jù)包,需要進(jìn)行完整的TCP交互。因此想使用原始套接字進(jìn)行編程,直接構(gòu)造數(shù)據(jù)包,并在IP層進(jìn)行發(fā)送,即采用SOCK_RAW進(jìn)行數(shù)據(jù)發(fā)送。使用SOCK_RAW的優(yōu)勢是,可以對數(shù)據(jù)包進(jìn)行完整的修改,可以處理IP層上的所有數(shù)據(jù)包,對各字段進(jìn)行修改,而不受UDP和TCP的限制。

下面開始構(gòu)造HTTP數(shù)據(jù)包,

IP層和TCP層使用python的Impacket庫,http內(nèi)容自行填寫。

復(fù)制代碼 代碼如下:

#!/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()


運(yùn)行后抓包如下:

相關(guān)文章

  • Python 如何批量更新已安裝的庫

    Python 如何批量更新已安裝的庫

    這篇文章主要介紹了Python 如何批量更新已安裝的庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子

    Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子

    今天小編就為大家分享一篇Python實(shí)現(xiàn)決策樹并且使用Graphviz可視化的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python可視化之pyechart庫使用詳解

    Python可視化之pyechart庫使用詳解

    這篇文章主要介紹了Python可視化之pyechart庫使用詳解,Pyecharts 提供了一個(gè)簡單而直觀的 API 接口,使得使用者無需了解復(fù)雜的 JavaScript 語法,即可通過 Python 代碼實(shí)現(xiàn)高度定制化的圖表設(shè)計(jì),需要的朋友可以參考下
    2023-12-12
  • Python趣味挑戰(zhàn)之教你用pygame畫進(jìn)度條

    Python趣味挑戰(zhàn)之教你用pygame畫進(jìn)度條

    pygame四種方法教會(huì)你畫進(jìn)度條,其實(shí)也不難,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • python 繪制場景熱力圖的示例

    python 繪制場景熱力圖的示例

    這篇文章主要介紹了python 繪制場景熱力圖的示例,幫助大家更好的利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • np.random.seed() 的使用詳解

    np.random.seed() 的使用詳解

    這篇文章主要介紹了np.random.seed() 的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 從零學(xué)Python之入門(三)序列

    從零學(xué)Python之入門(三)序列

    今天比較清閑,多寫幾篇入門篇,本文是入門系列的第三篇,我們來學(xué)習(xí)下Python中的序列。
    2014-05-05
  • python3 cookbook中常遇問題解答

    python3 cookbook中常遇問題解答

    本文主要介紹了python3 cookbook中常遇問題解答,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python操作gitlab API過程解析

    python操作gitlab API過程解析

    這篇文章主要介紹了python操作gitlab API過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • python 將html轉(zhuǎn)換為pdf的幾種方法

    python 將html轉(zhuǎn)換為pdf的幾種方法

    這篇文章主要介紹了python 將html轉(zhuǎn)換為pdf的幾種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12

最新評論