delete main_2.py
This commit is contained in:
parent
28704de846
commit
d5dd417c14
49
main_2.py
49
main_2.py
|
|
@ -1,49 +0,0 @@
|
||||||
import ipaddress
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def cidr_to_range(cidr):
|
|
||||||
network = ipaddress.ip_network(cidr)
|
|
||||||
return (network.network_address, network.broadcast_address)
|
|
||||||
|
|
||||||
def range_to_cidr(start, end):
|
|
||||||
return [str(cidr) for cidr in ipaddress.summarize_address_range(start, end)]
|
|
||||||
|
|
||||||
def merge_cidrs(cidrs):
|
|
||||||
ranges = sorted(cidr_to_range(cidr) for cidr in cidrs)
|
|
||||||
merged = []
|
|
||||||
for start, end in ranges:
|
|
||||||
if not merged or start > merged[-1][1] + 1:
|
|
||||||
merged.append([start, end])
|
|
||||||
else:
|
|
||||||
merged[-1][1] = max(merged[-1][1], end)
|
|
||||||
|
|
||||||
result = []
|
|
||||||
for start, end in merged:
|
|
||||||
result.extend(range_to_cidr(start, end))
|
|
||||||
return result
|
|
||||||
|
|
||||||
def main():
|
|
||||||
print("请输入IP段列表(每行一个CIDR格式的IP段):")
|
|
||||||
print("输入完成后,请按Ctrl+D (Unix/Linux/Mac) 或 Ctrl+Z 然后按Enter (Windows) 来结束输入")
|
|
||||||
|
|
||||||
input_cidrs = []
|
|
||||||
for line in sys.stdin:
|
|
||||||
cidr = line.strip()
|
|
||||||
try:
|
|
||||||
ipaddress.ip_network(cidr)
|
|
||||||
input_cidrs.append(cidr)
|
|
||||||
except ValueError:
|
|
||||||
print(f"无效的CIDR格式: {cidr},已忽略", file=sys.stderr)
|
|
||||||
|
|
||||||
if not input_cidrs:
|
|
||||||
print("未输入有效的IP段", file=sys.stderr)
|
|
||||||
return
|
|
||||||
|
|
||||||
merged_cidrs = merge_cidrs(input_cidrs)
|
|
||||||
|
|
||||||
print("\n合并后的IP段:")
|
|
||||||
for cidr in merged_cidrs:
|
|
||||||
print(cidr)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
Loading…
Reference in New Issue