最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python原始套接字編程實(shí)例解析

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

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

在實(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ì)是,可以對(duì)數(shù)據(jù)包進(jìn)行完整的修改,可以處理IP層上的所有數(shù)據(jù)包,對(duì)各字段進(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()

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

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

相關(guān)文章

  • Python使用Selenium實(shí)現(xiàn)瀏覽器打印預(yù)覽功能

    Python使用Selenium實(shí)現(xiàn)瀏覽器打印預(yù)覽功能

    在Web開發(fā)中,打印預(yù)覽是一個(gè)常見的功能需求,通過打印預(yù)覽,我們可以預(yù)覽和調(diào)整網(wǎng)頁的打印布局、樣式和內(nèi)容,Python的Selenium庫是一個(gè)強(qiáng)大的工具,可以自動(dòng)化瀏覽器操作,包括打印預(yù)覽,本文將介紹如何使用Python Selenium庫來實(shí)現(xiàn)瀏覽器的打印預(yù)覽功能
    2023-11-11
  • Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解

    Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解

    這篇文章主要介紹了Python日期與時(shí)間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • python爬蟲設(shè)置每個(gè)代理ip的簡單方法

    python爬蟲設(shè)置每個(gè)代理ip的簡單方法

    在本篇文章里小編給大家整理了一篇關(guān)于python爬蟲設(shè)置每個(gè)代理ip的簡單方法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-08-08
  • 使用 Visual Studio Code(VSCode)搭建簡單的Python+Django開發(fā)環(huán)境的方法步驟

    使用 Visual Studio Code(VSCode)搭建簡單的Python+Djan

    這篇文章主要介紹了使用 Visual Studio Code(VSCode)搭建簡單的Python+Django開發(fā)環(huán)境的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • Python中Random和Math模塊學(xué)習(xí)筆記

    Python中Random和Math模塊學(xué)習(xí)筆記

    這篇文章主要介紹了Python中Random和Math模塊學(xué)習(xí)筆記,本文講解了math模塊的數(shù)學(xué)常量、常用簡單函數(shù)、三角函數(shù)等,講解了random模塊的常用函數(shù)、隨機(jī)挑選和排序等內(nèi)容,需要的朋友可以參考下
    2015-05-05
  • Python機(jī)器學(xué)習(xí)庫sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Python機(jī)器學(xué)習(xí)庫sklearn(scikit-learn)的基礎(chǔ)知識(shí)和高級(jí)用法

    Scikit-Learn是 Python 最流行的機(jī)器學(xué)習(xí)庫之一,它提供了各種工具來實(shí)現(xiàn)、評(píng)估和探索各種學(xué)習(xí)算法,用于,各種機(jī)器學(xué)習(xí)任務(wù),在本教程中,我們將介紹 Scikit-Learn 的基礎(chǔ)知識(shí)和一些高級(jí)用法,并提供一些實(shí)例代碼來幫助我們更好地理解
    2023-07-07
  • Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法

    Ubuntu16.04 安裝多個(gè)python版本的問題及解決方法

    Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會(huì)出現(xiàn)報(bào)錯(cuò),接下來通過本文給大家介紹Ubuntu16.04 安裝python的問題,一起看看吧
    2021-09-09
  • Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點(diǎn)圖代碼示例

    Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點(diǎn)圖代碼示例

    這篇文章主要介紹了Python數(shù)據(jù)可視化編程通過Matplotlib創(chuàng)建散點(diǎn)圖實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • flask框架渲染Jinja模板與傳入模板變量操作詳解

    flask框架渲染Jinja模板與傳入模板變量操作詳解

    這篇文章主要介紹了flask框架渲染Jinja模板與傳入模板變量操作,結(jié)合實(shí)例形式詳細(xì)分析了flask框架模板相關(guān)原理、模板渲染、傳入?yún)?shù)等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • Python基礎(chǔ)之類的定義和使用詳解

    Python基礎(chǔ)之類的定義和使用詳解

    在Python中,類表示具有相同屬性和方法的對(duì)象的集合。在使用類時(shí),需要先定義類,然后再創(chuàng)建類的實(shí)例,通過類的實(shí)例就可以訪問類中的屬性和方法了。本文就來和大家一起聊聊Python中類的定義和使用,需要的可以參考一下
    2022-08-08

最新評(píng)論

元氏县| 汝阳县| 黄陵县| 汕头市| 垣曲县| 东阿县| 伽师县| 泸西县| 岳阳市| 会理县| 六枝特区| 苍南县| 常州市| 和龙市| 夹江县| 施甸县| 西宁市| 弥渡县| 临高县| 永善县| 长乐市| 四会市| 乡宁县| 吉安市| 临泽县| 武城县| 东山县| 霍州市| 鄂州市| 榆中县| 丰都县| 长春市| 措美县| 红安县| 山阳县| 土默特左旗| 理塘县| 邳州市| 获嘉县| 武清区| 光山县|