開始地址、結束地址獲取其中所有IP地址(一)

問:已知開始地址(1.1.1.0)、結束地址(1.1.1.255);開始地址(1.1.2.3)、結束地址(1.1.2.12);開始地址(1.2.1.0)、結束地址(1.2.4.255);開始地址(1.1.6.0)、結束地址(1.1.8.212);求其中的所有IP地址。

答:將所有地址整理成以下類型:

運行代碼:

#!/usr/bin/python  
# coding=UTF8 

import os 
import sys 
from IPy import IP 
#打開文件;1.txt是存放地址IP;ip.txt是以尾部添加的方式將結果輸入到ip.txt中。
f1=open("./1.txt","r")
f2=open("./ip.txt",'a+') 

line1=f1.readlines() 
iplist = ""
#獲取f1文件中的每行數據
for m in line1: 
	ips = str(m).split("-")
        #獲取-前的開始IP
	ips1 = str(ips[0]).split(".")
        #獲取-後的開始IP
	ips2 = str(ips[1]).split(".")
        #對IP地址進行判斷,並將相應結果輸入到f2中。
	if(ips1[0]==ips2[0] and ips1[1]==ips2[1] and ips1[2]==ips2[2]):
		for x in range(int(ips1[3]),int(ips2[3])+1):
			iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips1[2])+'.'+str(x)
			print >> f2,"%s" %iplist
	else:
		for j in range(int(ips1[3]),256):
			iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips1[2])+'.'+str(j)
			print >> f2,"%s" %iplist
		for i in range(int(ips1[2])+1,int(ips2[2])):
			for j in range(0,256):
				iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(i)+'.'+str(j)
				print >> f2,"%s" %iplist
		for j in range(0,int(ips2[3])):
			iplist = str(ips1[0])+'.'+str(ips1[1])+'.'+str(ips2[2])+'.'+str(j)
			print >> f2,"%s" %iplist

	

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章