亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Python中利用原始套接字進(jìn)行網(wǎng)絡(luò)編程的示例

系統(tǒng) 1759 0

在實(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的限制。

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

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

            
#!/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:    
            
              
#-------------------------------------------------------------------------------
 
import sys
import socket
from impacket import ImpactDecoder, ImpactPacket
 
def main():
 
  if len(sys.argv) < 3:
    print "Use: %s 
              
                
                  " % sys.argv[0]
    print "Use: %s 
                  
                    
                      
                        " % 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()

                      
                    
                  
                
              
            
          


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 在线观看亚洲免费 | 国产精品久久久久一区二区 | 亚洲综合成人在线 | 久久国产精品夜色 | 亚洲精品区在线播放一区二区 | 99久热国产精品视频尤物不卡 | 久久国产精品夜色 | 亚洲国产精品不卡毛片a在线 | 亚洲xoxo| 久艹在线观看视频 | 亚洲国产欧美日韩 | 亚洲欧美日韩精品香蕉 | 真人特级毛片免费视频 | 欧美一区二区三区婷婷月色 | 久久精品国产主播一区二区 | 老司机成人午夜精品福利视频 | 91中文字幕 | 午夜免费播放观看在线视频 | 欧美开嫩苞实拍视频在线观看 | 高清毛片在线看高清 | 亚洲一区二区三区高清网 | 精品福利一区 | 午夜狠狠干 | 一级一级一级毛片免费毛片 | 四虎影永久地址www 四虎影永久在线高清免费 四虎影永久在线观看精品 四虎影永久在线观看网址 四虎影院.com | 一区二三区国产 | 欧美一级艳片视频免费观看 | 中文字幕精品视频在线 | 精品老司机在线观看视频 | 日本一级毛片视频在线看 | 欧美日韩顶级毛片www免费看 | 成人短视频网站 | 日韩最新视频一区二区三 | 欧美亚洲国产成人综合在线 | 亚洲精品第一区二区三区 | 激情亚洲综合网 | 麻豆成人久久精品二区三 | 亚洲视频 在线观看 | ww.久久| 久久国产精品老人性 | 久久亚洲福利 |