python網路工具供以後使用

2021-09-04 04:31:47 字數 2503 閱讀 7936

1.dns

解析 #!/usr/bin/envpython

#coding=utf8

'''資料報格式:

(rt=domain|arcount=0qd=|>>>, 4l ihl=5l tos=0x0len=88 id=53905 flags=df frag=0l ttl=248 proto=udp chksum=0x4e

b7 src=202.96.209.5dst=192.168.1.61 options= |len=68 chksum=0x2652 |l rcode=ok qdcount=1ancount=2 nscount=0 arcount=0 qd=' qtype=a qclass=in|> an=rdata='101.226.103.106'|data='101.226.129.158'|>> ns=none ar=none |>>>)

'''from scapy.allimport *

def dnsquery(sip):

ip_header=ip(src=sip,dst="202.96.209.5")

udp_header=udp(dport=53)

dns_header=dns(id=1,qr=0,opcode=0,tc=0,rd=1,qdcount=1,ancount=0,nscount=0,arcount=0)#構造標準的dns資料報

dns_header.qd=dnsqr(qname="www.qq.com",qtype=1,qclass=1)#構造dns資源記錄

packet=ip_header/udp_header/dns_header

ans,unans=sr(packet,timeout=1,verbose=0)

type_dict=

#print ans[0]

for s,r in ans:

print "received_ip:%s"%(r[ip].dst)

print "query domain:%s"%(r[dns].qd.qname)

print "%s\t%s"%("type","ip(domain)")

print "-"*30

for i in xrange(15):

try:

print "%s\t%s"%(type_dict[r[dns].an[i].type],r[dns].an[i].rdata)

except:

pass

print "*"*30

for x in [61]:

ip="192.168.1."+str(x)

#print ip

dnsquery(ip)

2.scan syn

掃瞄 #!/usr/bin/envpython

#coding=utf8

'''資料報格式:

(>>,tcp chksum=0xe4efsrc=192.168.1.1 dst=192.168.1.61 options= |x dport=16334 seq=0ack=1 dataofs=5l reserved=0l flags=ra window=0 chksum=0xe471

urgptr=0 |>>)

'''from scapy.allimport *

#ans,unans=sr(ip(dst="192.168.1.1")/tcp(dport=[23],flags="s"),timeout=2,verbose=0)

ans,unans=sr(ip(dst="192.168.1.1")/tcp(sport=randshort(),dport=(1,1024),flags="s"),timeout=2,verbose=0)#傳送syn包

status_dict=

#print ans[0]

for s,r in ans:

sport,flags=r[tcp].sport,status_dict[r[tcp].flags]#獲取返回的資料報源埠和響應狀態,是ack+syn,還是rst+ack,若是ack+syn則是open,否則是closed

if flags!="closed":

print "".format(sport,flags)

3.arp

掃瞄,獲取存活主機的

mac #!/usr/bin/envpython

#coding=utf8

'''資料報格式

[(>,

>>)]

'''from scapy.allimport *

ans,unans=srp(ether(dst="ff:ff:ff:ff:ff:ff")/arp(pdst="192.168.1.0/24"),timeout=2,verbose=0)

#print ans[0]#列印接收到的第1個包

for s,r in ans:#遞迴每乙個包(包中包含傳送與接收包),s傳送包,r接收包

print r[ether].src,r[arp].psrc#列印mac=>ip

iperf網路工具使用小結

iperf的使用方法及詳解可以參考我的另一篇部落格 以下來自工作中使用iperf時遇到的問題 使用iperf測試乙個網路裝置的傳輸速率 1 測試環境 兩台windows7的膝上型電腦和乙個網路裝置。測試方法 兩台筆記本中間接網路裝置。乙個筆記本傳送資料,資料經過網路裝置然後另一台筆記本來接收資料。按...

網路工具 ss

ss命令用於顯示socket狀態.他可以顯示packet sockets,tcp sockets,udp sockets,dccp sockets,raw sockets,unix domain sockets等等統計.它比其他工具展示等多tcp和state資訊.它是乙個非常實用 快速 有效的跟蹤i...

網路工具類

public class netstateutils return false 判斷當前網路是否是wifi網路 param context return boolean public static boolean iswifi context context return false 判斷當前網路是...