We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
class IPv4: ip = "" integer = 0 end = 0 def __init__(self, address =0): if isinstance(address, int): self.integer = address self.ip = self.toString(address) if isinstance(address, str): self.ip = address self.integer = self.toInteger(address) def toString(self, integer:int): return f'{(integer>>24)&0xff}.{(integer>>16)&0xff}.{(integer>>8)&0xff}.{(integer>>0)&0xff}' def toInteger(self, address:str="0.0.0.0"): """[summary] [description] Arguments: address {[type]} -- [description] Returns: [type] -- [description] """ ipNumber = 0 partIp = address.split('.') i = 0 for x in partIp: ipNumber = ipNumber + int(x)*(0x100**(3-i)) i = i+1 return ipNumber def range(self, start: int = 0, end: int = 0, ipType=""): self.end = end IPRange = { "A": ["0.0.0.0", "127.255.255.255"], "B": ["128.0.0.0", "191.255.255.255"], "C": ["192.0.0.0", "223.255.255.255"], "D": ["224.0.0.0", "239.255.255.255"], "E": ["240.0.0.0", "247.255.255.255"] } this = self class IpRangeIter: def __iter__(self): self.count = start return self def __next__(self): if(ipType == 'A'): this.integer = this.toInteger(IPRange['A'][0]) this.end = this.toInteger(IPRange['A'][1]) elif(ipType == 'B'): this.integer = this.toInteger(IPRange['B'][0]) this.end = this.toInteger(IPRange['B'][1]) elif(ipType == 'C'): this.integer = this.toInteger(IPRange['C'][0]) this.end = this.toInteger(IPRange['C'][1]) elif(ipType == 'D'): this.integer = this.toInteger(IPRange['D'][0]) this.end = this.toInteger(IPRange['D'][1]) elif(ipType == 'E'): this.integer = this.toInteger(IPRange['E'][0]) this.end = this.toInteger(IPRange['E'][1]) if(self.count < this.end): integervalue = this.integer + self.count val = this.toString(integervalue) self.count += 1 return (val, integervalue) else: raise StopIteration() return iter(IpRangeIter())
The text was updated successfully, but these errors were encountered:
用法如下:
for ip,_ in IPv4().range(ipType="C"): print(ip)
扫描全网C段IP
或者你也可以指定某个ip段
for ip,_ in IPv4("127.0.0.1").range(0,255): print(ip)
会生成 从127.0.0.1 - 127.0.0.255, 从零开始,到255结束
由于你的代码实在是不好下手,我只是看到了scan 函数就放弃了,实在是不怎么好的阅读体验
scan
Sorry, something went wrong.
No branches or pull requests
The text was updated successfully, but these errors were encountered: