[python]代码库
from scapy.layers.inet import *
from scapy.all import *
import random
import time
print("""
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
++++++++++++++ + + ++++++++++++++ ++ +++++++++++++ +++++++++++++++
++ ++ + + ++ ++ ++ ++ ++ ++ ++
++++++++++++++ ++ ++++++++++++++ ++ ++ ++ ++ ++
++ ++ ++ ++ ++ ++ +++++++++++++++
++ ++ ++ ++ ++ ++ ++
++ ++ ++ ++ ++ ++ ++++++ ++
++ ++ ++ ++ ++ ++ ++++++ ++
++ ++ ++ ++ ++ ++ +++++++++++++++
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
""") ; time.sleep(2)
print("[ ] 已加载:0%") ; time.sleep(2)
print("[*** ] 已加载:5%") ; time.sleep(3)
print("[******* ] 已加载:15%") ; time.sleep(4)
print("[************* ] 已加载:35%") ; time.sleep(3)
print("[******************* ] 已加载:80%") ; time.sleep(2)
print("[************************* ] 已加载:99%") ; time.sleep(5)
print("[****************************] 已加载:100%") ; time.sleep(2) ; print("加载完毕!启动程序...") ; time.sleep(2)
ip_dict = {}
stop_ip_range = 0
def py_ping(link_ip):
for i in range(5):
time.sleep(1)
random_IP_id = random.randint(1, 9999)
random_IP_ttl = random.randint(1, 64)
random_ICMP_id = random.randint(1, 9999)
random_ICMP_seq = random.randint(1, 9999)
ping_data = IP(dst=link_ip, id=random_IP_id, ttl=random_IP_ttl) / ICMP(id=random_ICMP_id,seq=random_ICMP_seq, ) / b'hello'
print(ping_data)
ping = sr1(ping_data,timeout=5)
try:
request_ip = (ping.getlayer(IP)).fields['src']
recev_bytes = len(ping.getlayer(Padding).fields['load'])
IP_ttl = ping.getlayer(IP).fields['ttl']
ICMP_seq = ping.getlayer(ICMP).fields['seq']
except:
print("----------------------------------------------------------------------------------- ")
print(f"[-]请求时产生异常,可能是目标IP:{link_ip}没有存活所导致,请检查信息后重新尝试 !")
print("-----------------------------------------------------------------------------------")
global stop_ip_range
stop_ip_range+=1
ip_dict['STOP_IP_%d'%stop_ip_range] = link_ip
break
print("---------------------------------------------------------------------------------------")
print(f"[+]in {request_ip} bytes is {recev_bytes} ttl is {IP_ttl} seq is {ICMP_seq}")
print("---------------------------------------------------------------------------------------")
if __name__ == '__main__':
# ping_ip = input("请输入ping的IP:")
import ipaddress
ip_list = []
while True:
scan_ip = input("请输入要扫描的IP网络号地址(系统会自动扫描该网络下主机):")
scan_ip_range = input("请输入扫描主机数:")
try:
ip = ipaddress.ip_network(f'{scan_ip}.0/24')
break
except:
print("[-]您输入的不是正确的IP网络号地址!")
pass
for addr_ip in ip:
ip_list.append(str(addr_ip))
a = 0
for i in range(int(scan_ip_range)):
a+=1
py_ping(ip_list[a])
print("=====================================")
for stop_ip_,stop_ip in ip_dict.items():
print(f"[-]death ip is ---> {stop_ip}")
print("=====================================")
yn_write_ping = input("是否保存死亡IP记录(Y/N):")
if (yn_write_ping == 'y') or (yn_write_ping == 'y'):
with open("pyping_death_IP.txt",'wb') as op:
op.write(str(ip_dict.items()).encode("UTF-8"))
print("保存成功")
time.sleep(3)
else:
pass
[源代码打包下载]