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

Python原始套接字編程實例解析

 更新時間:2020年01月29日 12:48:24   作者:LiuYanYGZ  
這篇文章主要介紹了Python原始套接字編程實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了Python原始套接字編程實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

在實驗中需要自己構(gòu)造單獨的HTTP數(shù)據(jù)報文,而使用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)容自行填寫。

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

運行后抓包如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Pandas中DataFrame常用操作指南

    Pandas中DataFrame常用操作指南

    DataFrame是pandas最常用的對象,其類似于excel中的表格,完成數(shù)據(jù)讀取后,數(shù)據(jù)就以DataFrame數(shù)據(jù)結(jié)構(gòu)存儲在內(nèi)存中,下面這篇文章主要給大家介紹了關(guān)于Pandas中DataFrame常用操作的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Python中字典創(chuàng)建、遍歷、添加等實用操作技巧合集

    Python中字典創(chuàng)建、遍歷、添加等實用操作技巧合集

    這篇文章主要介紹了Python中字典創(chuàng)建、遍歷、添加等實用操作技巧合集,本文講解了字典中常見方法列表、創(chuàng)建字典的五種方法、字典中鍵值遍歷方法等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • Python利用shutil實現(xiàn)拷貝文件功能

    Python利用shutil實現(xiàn)拷貝文件功能

    shutil?是一個?Python?內(nèi)置模塊,該模塊對文件的復(fù)制、刪除和壓縮等操作都提供了非常方便的支持。本文將利用shutil實現(xiàn)拷貝文件功能,需要的可以參考一下
    2022-07-07
  • pandas函數(shù)isnull的具體使用

    pandas函數(shù)isnull的具體使用

    本文主要介紹了pandas函數(shù)isnull的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • Python Web框架Django的模型和數(shù)據(jù)庫遷移詳解

    Python Web框架Django的模型和數(shù)據(jù)庫遷移詳解

    Django 是一個極其強(qiáng)大的 Python Web 框架,它提供了許多工具和特性,能夠幫助我們更快速、更便捷地構(gòu)建 Web 應(yīng)用,在本文中,我們將會關(guān)注 Django 中的模型(Models)和數(shù)據(jù)庫遷移(Database Migrations)這兩個核心概念,需要的朋友可以參考下
    2023-08-08
  • 10行Python代碼實現(xiàn)Web自動化管控的示例代碼

    10行Python代碼實現(xiàn)Web自動化管控的示例代碼

    這篇文章主要介紹了10行Python代碼實現(xiàn)Web自動化管控的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python PyTorch實現(xiàn)Timer計時器

    Python PyTorch實現(xiàn)Timer計時器

    這篇文章主要為大家詳細(xì)介紹了Python PyTorch如何實現(xiàn)簡單的Timer計時器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • python利用lxml讀寫xml格式的文件

    python利用lxml讀寫xml格式的文件

    這篇文章主要為大家詳細(xì)介紹了python利用lxml讀寫xml格式的文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • Python?Tkinter?Gui運行不卡頓(解決多線程解決界面卡死問題)

    Python?Tkinter?Gui運行不卡頓(解決多線程解決界面卡死問題)

    最近寫的Python代碼不知為何,總是執(zhí)行到一半卡住不動,所以下面這篇文章主要給大家介紹了關(guān)于Python?Tkinter?Gui運行不卡頓,解決多線程解決界面卡死問題的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • python基于xml parse實現(xiàn)解析cdatasection數(shù)據(jù)

    python基于xml parse實現(xiàn)解析cdatasection數(shù)據(jù)

    這篇文章主要介紹了python基于xml parse實現(xiàn)解析cdatasection數(shù)據(jù)的方法,是非常實用技巧,需要的朋友可以參考下
    2014-09-09

最新評論