【问题标题】:IP range generator script [closed]IP范围生成器脚本[关闭]
【发布时间】:2016-02-28 10:08:09
【问题描述】:

我需要一个脚本来生成 IP 范围...假设从 64.1.1.1 到 74.255.255.255,输出应该是这样的:

64.1.1.1 
64.1.1.2
64.1.1.3
........
74.255.255.254
74.255.255.255
(line-by-line)

【问题讨论】:

  • 这不是编码服务。展示你的努力,人们可能会帮助你。

标签: bash unix ip


【解决方案1】:
#!/bin/bash

# convert IP to decimal
ip2dec() {
  set -- ${1//./ }     # split $1 with "." to $1 $2 $3 $4
  declare -i dec       # set integer attribute
  dec=$1*256*256*256+$2*256*256+$3*256+$4
  echo $dec
}

# convert decimal to IP
dec2ip() {
  declare -i ip1 ip2 ip3 ip4
  ip1=$1/256/256/256
  ip2=($1-$ip1*256*256*256)/256/256
  ip3=($1-$ip1*256*256*256-$ip2*256*256)/256
  ip4=$1-$ip1*256*256*256-$ip2*256*256-$ip3*256
  echo $ip1.$ip2.$ip3.$ip4
}

s=$(ip2dec $1)
e=$(ip2dec $2)

for ((i=$s;i<=$e;i++)); do
  dec2ip $i 
done

例如:./script.sh 64.1.2.250 64.1.3.5

输出:

64.1.2.250 64.1.2.251 64.1.2.252 64.1.2.253 64.1.2.254 64.1.2.255 64.1.3.0 64.1.3.1 64.1.3.2 64.1.3.3 64.1.3.4 64.1.3.5

如果你需要性能,我建议使用 perl。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-11-27
  • 1970-01-01
  • 2012-05-28
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
  • 2012-08-13
相关资源
最近更新 更多