udp协议扫描
代码部分
- 数据包构造扫描部分
通过python发包神器scapy构造UDP数据包
端口一定要选择没有开放的,不然会扫描不到主机
def scan(ip):
try: # 端口要求一定是没开放
packet = IP(dst=ip)/UDP(dport=56789)
result = sr1(packet,timeout=0.5,verbose=0)
#result.show()
if int(result[IP].proto) == 0x01: # 0x01 代表的ICMP字段值
time.sleep(0.1)
print(ip + ' ' + "on line")
except:
return
- 参数获取部分
通过optparse模块接收用户提供的参数,判断是扫描整个网段还是读取ip地址文件
获取到地址后再通过Thread多线程去发送数据包
def main():
# 生成帮助信息,以及接收用户输入的参数,并建立对象
usage = "Usage: arp扫描.py -f <filename> -i <ip address>"
parse = OptionParser(usage=usage)
parse.