想获得两个ip之间所有的有效ip,用来检测各种漏洞。
ip纯真数据库只提供ip段的头和尾,想完整测试某机构的所有ip就要获取头尾ip之间的所有ip,但是网上竟然没找到有用的,好不容易找到一个被转发好多次的,竟然是搞两个for循环糊弄人,索性自己写:
用法:python ips_between_two_ip.py ip1 ip2
只要ip2在ip1后面即可
#
# author:Leviathan
# date:2017/4/5
#
import struct
import socket
import sys
import os
def findIPs(start, end):
if os.path.isfile("ips_from_"+start+"_to_"+end+".txt")==True:
os.remove("ips_from_"+start+"_to_"+end+".txt")
ips=open("ips_from_"+start+"_to_"+end+".txt","a")
ipstruct = struct.Struct('>I')
start, = ipstruct.unpack(socket.inet_aton(start))
end, = ipstruct.unpack(socket.inet_aton(end))
print "[+]start to list each valid ip od your range."
for i in range(start, end+1):
ip=socket.inet_ntoa(ipstruct.pack(i))
ip_array=ip.split('.')
if int(ip_array[3])==0 or int(ip_array[3])==255:
pass
else:
ips.write(ip+'\n')
ips.close()
def check_legality(ips1,ips2):
ips1_array=ips1.split('.')
ips2_array=ips2.split('.')
try:
if len(ips1_array)==4 and len(ips2_array)==4:
res_flag=0
for i in range(0,4,1):
if int(ips1_array[i])>=0 and int(ips2_array[i])>=0 and int(ips1_array[i])<255 and int(ips2_array[i])<255:
res_flag=1
continue
else:
res_flag=0
break
if res_flag==1:
print "[+]ip is legal."
findIPs(ips1,ips2)
elif res_flag==0:
print "[-]ip is ILLEGAL."
return False
except Exception,e:
print "[-]ip is ILLEGAL:type."
print "[-]"+e
try:
ip1=sys.argv[1]
ip2=sys.argv[2]
check_legality(ip1,ip2)
except:
if len(sys.argv)!=3:
print "[-]Something's wrong with your input."
print "[!]Example:python x.py 10.0.0.1 10.0.0.2"
看了兄弟的BLOG,妈蛋,wordpress 前端比我做好的,python写的比我好,树莓派玩的比我溜,渗透也可以。scrapy玩的好,最后,兄弟,交个朋友不?
66666