首页 编程教程正文

【Python】IP地址段枚举

piaodoo 编程教程 2020-02-22 22:01:37 1007 0 python教程

本文来源吾爱破解论坛

手撸了一个根据ip段枚举ip地址的功能,配合搜集到的ip段将想要的ip先列出来,目前只支持192.168.1.1-193.168.1.1这样的方式,类似于192.168-190.1.1-125和192.168.1.1/20这样的后期慢慢写

#coding=utf-8
''''''
import re
import nmap

def EnumerateIp(StartIp,EndIp):
    '''枚举Ip,目前只支持192.168.1.1-193.168.1.1这样的方式'''
    if IpCheck(StartIp) == 'Yes' and IpCheck(EndIp) == 'Yes':
        StartIpValue = IpToDecimal(StartIp)
        EndIpValue = IpToDecimal(EndIp)
        if EndIpValue >= StartIpValue:
            for ip in range(StartIpValue, EndIpValue+1):
                print(DecimalToIp(ip))
        else:
            for ip in range(EndIpValue, StartIpValue+1):
                print(DecimalToIp(ip))

def DecimalToIp(ip):
    '''将十进制转换为ip'''
    IpValue = str((((ip//256)//256)//256))+'.'+str(((ip//256)//256)%256)+'.'+str((ip//256)%256)+'.'+str(ip%256)
    return IpValue

def IpToDecimal(hostIp):
    '''将ip返回为十进制'''
    IpList = hostIp.split('.')
    IpValueA = int(IpList[0])
    IpValueB = int(IpList[1])
    IpValueC = int(IpList[2])
    IpValueD = int(IpList[3])
    return((((IpValueA*256+IpValueB)*256)+IpValueC)*256+IpValueD)

def IpCheck(hostIp):
    '''以.号分割,分成4份,每一份有1-3位,组成为0-9的数字,且数字大于等于0小于等于255'''
    try:
        pat = re.compile(r'([0-9]{1,3})\.')
        r = re.findall(pat,hostIp+".")
        if len(r)==4 and len([x for x in r if int(x)>=0 and int(x)<=255])==4:
            return('Yes')
    except Exception as identifier:
        return(identifier)

if __name__ == "__main__":
    StartIp = '202.38.135.0'
    EndIp = '202.38.134.0'
    EnumerateIp(StartIp,EndIp)

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7333.html

搜索