麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > Python > 正文

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

2024-09-09 19:03:41
字體:
供稿:網(wǎng)友

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

在實驗中需要自己構(gòu)造單獨的HTTP數(shù)據(jù)報文,而使用SOCK_STREAM進行發(fā)送數(shù)據(jù)包,需要進行完整的TCP交互。

因此想使用原始套接字進行編程,直接構(gòu)造數(shù)據(jù)包,并在IP層進行發(fā)送,即采用SOCK_RAW進行數(shù)據(jù)發(fā)送。

使用SOCK_RAW的優(yōu)勢是,可以對數(shù)據(jù)包進行完整的修改,可以處理IP層上的所有數(shù)據(jù)包,對各字段進行修改,而不受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 sysimport socketfrom 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í)有所幫助,也希望大家多多支持武林網(wǎng)之家。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 成人做爰高潮片免费视频韩国 | 91亚洲精品一区二区福利 | 一级做a爱片性色毛片高清 日本一区二区在线看 | 国产一级一区二区三区 | 香蕉视频网站在线观看 | 影视免费观看 | 免费观看黄色一级视频 | 亚州综合图片 | 黄网站色成年大片免费高 | 最污网站 | 中文字幕在线永久 | 超碰97人 | 欧美视频在线观看一区 | 毛片免费视频观看 | 欧美日韩免费一区 | 有兽焉免费动画 | 中文字幕在线观看1 | 国产999精品久久久久 | 国产免费一区二区三区在线能观看 | 欧美性生活久久 | 98国内自拍在线视频 | 偿还电影免费 | 黄色网址进入 | 性欧美大战久久久久久久免费观看 | 亚洲男人的天堂在线视频 | 神马久久精品综合 | 日本中文字幕电影在线观看 | 久久久久久久久久久高潮一区二区 | 美女网站黄在线观看 | 91精选视频在线观看 | h视频在线免费看 | 亚洲精品有限 | 亚洲欧洲日韩av | 国产一区二区三区四区五区加勒比 | 黄色久 | 91精品国产九九九久久久亚洲 | 黄色一级电影网 | 成人宗合网 | 国产一国产精品一级毛片 | 日本免费一区二区三区四区 | h网站在线观看 |