我正在尝试创建一个脚本,该脚本根据用户输入的起始和结束IP范围生成IP地址列表。例如,可以输入192.168.1.25&192.168.1.50。然后,这个列表将被输入scapy以测试开放端口。我想我已经生成了这个列表,但是我仍然坚持要把每个IP的输出和输入到我的代码中。我想我是想用整个列表和列表中的一个条目。如果有更好的方法,那就好了。我这样做主要是为了提高我对Python的理解。
谢谢!
from scapy.all import *
ip_start = raw_input('Please provide the starting IP address for your scan --> ')
start_list = ip_start.split(".")
ip_end = raw_input('Please provide the ending IP address for your scan --> ')
end_list = ip_end.split(".")
top = int(start_list[3])
bot = int(end_list[3])
octet_range = range(top,bot)
#print octet_range
for i in octet_range:
#new_ip_start = ip_start.replace(str(top),str(i))
start_list[3] = i
#print top
#print i
print type(start_list)
src_port = RandShort()
dst_port = 80
scan = sr1(IP(dst=str(start_list))/TCP(sport=src_port,dport=dst_port,flags="S"),timeout=10)
记住,点式IPv4地址“x.x.x.x”只不过是32位整数的可读表示。使用此选项,可以生成如下范围:
使用像
nmap
这样的格式会更容易:现在,您可以:
parsed_ranges
看起来像[[192], [168], [1], [1, 255]]
。从这里开始,用itertools
生成地址很简单:下面是一个简单的实现:
结果是:
相关问题 更多 >
编程相关推荐