全球主机交流论坛

标题: ip/子网掩码形式转换成可用的ip列表? [打印本页]

作者: nieyuli    时间: 2023-7-24 12:52
标题: ip/子网掩码形式转换成可用的ip列表?
有没有什么工具可以导入ip/子网掩码形式的ip,然后转换为可以的单个ip列表?

比如下面这样的ip转换为可以的单个ip列表,大佬有这样的工具吗?

  1. 1.0.1.0/24
  2. 1.0.2.0/23
  3. 1.0.8.0/21
复制代码


有可用的py脚本也行啊,有大佬可以指点一下吗?
作者: 笑花落半世琉璃    时间: 2023-7-24 13:01
自己算

1.0.1.0~254
1.0.2.0~ 1.0.3.254
1.0.8.0~1.0.15.254
作者: nieyuli    时间: 2023-7-24 13:05
笑花落半世琉璃 发表于 2023-7-24 13:01
自己算

1.0.1.0~254

太多了。算不过来,8w多行。。。。
所以想求个工具转换一下,
想法是生成可以的ip,每个一行。。。
作者: Hetzner    时间: 2023-7-24 13:08
我是自己算,然后c++ 用for和i++输出到文件
作者: nieyuli    时间: 2023-7-24 13:13
Hetzner 发表于 2023-7-24 13:08
我是自己算,然后c++ 用for和i++输出到文件

大佬能发个教程吗?
作者: 笑花落半世琉璃    时间: 2023-7-24 13:16
nieyuli 发表于 2023-7-24 13:05
太多了。算不过来,8w多行。。。。
所以想求个工具转换一下,
想法是生成可以的ip,每个一行。。。 ...

自己算是指随便练习几个,再自己写脚本

我是直接判断掩码位和近邻的,直接扔2的n次方 最后加加减减完事
作者: nieyuli    时间: 2023-7-24 13:19
流出了没有技术的泪水
作者: ezpz    时间: 2023-7-24 13:45

作者: xgfan    时间: 2023-7-24 13:48
跟楼上抢生意,5元/100行。
作者: darius    时间: 2023-7-24 13:57
本帖最后由 darius 于 2023-7-24 14:26 编辑

https://www.calculator.net/ip-subnet-calculator.html

作者: Hyouka_    时间: 2023-7-24 14:10
下载解压双击index.html
浏览器能打开应该可以了....
不保证正确性...毕竟是AI提供的逻辑

(, 下载次数: 5)
作者: HardDisker    时间: 2023-7-24 14:27
http://magic-cookie.co.uk/iplist.html
作者: zzhf    时间: 2023-7-24 16:36
以前学网工时候的必备,千月网络助手
作者: nieyuli    时间: 2023-7-24 16:50
Hyouka_ 发表于 2023-7-24 14:10
下载解压双击index.html
浏览器能打开应该可以了....
不保证正确性...毕竟是AI提供的逻辑

大佬牛逼,跪谢!~
作者: 言和    时间: 2023-7-24 16:57
  1. function cidr_to_ips() {
  2.     local cidr=$1
  3.     local ip
  4.     local ip_range

  5.     IFS='/' read -r -a parts <<< "$cidr"
  6.     local base_ip=${parts[0]}
  7.     local cidr_bits=${parts[1]}

  8.     # 计算掩码
  9.     local mask=$(cidr_to_mask "$cidr_bits")

  10.     # 将IP地址转换为32位整数
  11.     IFS='.' read -r -a ip_parts <<< "$base_ip"
  12.     local ip_int=$(( (ip_parts[0] << 24) + (ip_parts[1] << 16) + (ip_parts[2] << 8) + ip_parts[3] ))

  13.     # 计算IP范围
  14.     local range=$(( 2 ** (32 - cidr_bits) ))

  15.     # 输出所有可用的IP地址
  16.     for ((i = 1; i < range - 1; i++)); do
  17.         ip_int=$((ip_int + 1))
  18.         ip="$((ip_int >> 24)).$(((ip_int >> 16) & 255)).$(((ip_int >> 8) & 255)).$((ip_int & 255))"
  19.         echo "$ip"
  20.     done
  21. }

  22. # 调用函数,并传入 CIDR 表示形式作为参数
  23. cidr="1.0.1.0/24"
  24. echo "CIDR $cidr 对应的所有可用的IP地址:"
  25. cidr_to_ips "$cidr"
复制代码

作者: will888    时间: 2023-7-24 17:35
(, 下载次数: 0)




欢迎光临 全球主机交流论坛 (https://fd.vvwvv.eu.org/) Powered by Discuz! X3.4