2017-04-09 359 views
0

我使用SCAPY編寫了部署在WEB服務器中的程序,並希望使用SCAPY發送TCP RST以阻止某些特定的HTTP客戶端訪問。使用Python scapy發送TCP RST以防止客戶端訪問問題

運行程序後,客戶端使用Telnet連接到服務器,WEB偵聽端口可以被SCAPY程序中斷,但使用瀏覽器訪問不能中斷。爲什麼這樣?

的代碼如下:

# coding: utf-8 

# web server : 10.28.16.20 ; 
# http client : 10.28.1.70; 

from scapy.all import * 
def pkgs(pkg): 
    if pkg.getlayer(TCP) and pkg[IP].dst=="10.28.16.20" and "10.28.1.70" in pkg[IP].src: 
     resp=IP(dst=pkg[IP].src,src=pkg[IP].dst)/TCP(dport=pkg[TCP].sport,sport=pkg[TCP].dport,flags="RA",seq=pkg[TCP].ack,ack=pkg[TCP].seq+(len(pkg[TCP].payload) if pkg.getlayer(Raw) else 1)) 
     send(resp,count=2,verbose=0) 
if __name__=="__main__": 
    conf.L3socket=L3RawSocket 
    sniff(filter="tcp",prn=pkgs,store=0) 

Program code screenshot

+0

請將您的代碼粘貼到問題中,而不是發表評論! –

+0

代碼已經添加@ Thierry Lathuille – Jianguo

+0

爲什麼沒人回答? – Jianguo

回答

0

我已經解決了it.import線程。