ipcalc.sh CIDR notation Hi,
the attached patch makes ipcalc.sh accept IP/Netmask combinations in CIDR notation. Before you could only do: # sh ipcalc.sh 192.168.0.0 255.255.255.0 1 10 IP=192.168.0.0 NETMASK=255.255.255.0 BROADCAST=192.168.0.255 NETWORK=192.168.0.0 PREFIX=24 START=192.168.0.1 END=192.168.0.11 with this patch you can also execute it with: sh ipcalc.sh 192.168.0.0/24 1 10 IP=192.168.0.0 NETMASK=255.255.255.0 BROADCAST=192.168.0.255 NETWORK=192.168.0.0 PREFIX=24 START=192.168.0.1 END=192.168.0.11 The patch is based on #1260 [1], i just changed one line to calculate the START end END ips right. I wonder why that never got included. If there is no reason not to do i would like to ask you to commit that patch, because its a functionality i (and probably others) miss quite often. Btw, i also fixed 4 useless tabs, that might look a bit strange in the patch. Regards, Manuel SVN-Revision: 26930
This commit is contained in:
parent
e35822050b
commit
ed8f726dab
2 changed files with 16 additions and 7 deletions
|
@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
|
||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=base-files
|
PKG_NAME:=base-files
|
||||||
PKG_RELEASE:=69
|
PKG_RELEASE:=70
|
||||||
|
|
||||||
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
PKG_FILE_DEPENDS:=$(PLATFORM_DIR)/ $(GENERIC_PLATFORM_DIR)/base-files/
|
||||||
PKG_BUILD_DEPENDS:=opkg/host
|
PKG_BUILD_DEPENDS:=opkg/host
|
||||||
|
|
|
@ -23,8 +23,17 @@ function int2ip(ip,ret,x) {
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
ipaddr=ip2int(ARGV[1])
|
slpos=index(ARGV[1],"/")
|
||||||
netmask=ip2int(ARGV[2])
|
if (slpos == 0) {
|
||||||
|
ipaddr=ip2int(ARGV[1])
|
||||||
|
netmask=ip2int(ARGV[2])
|
||||||
|
} else {
|
||||||
|
ipaddr=ip2int(substr(ARGV[1],0,slpos-1))
|
||||||
|
netmask=compl(2**(32-int(substr(ARGV[1],slpos+1)))-1)
|
||||||
|
ARGV[4]=ARGV[3]
|
||||||
|
ARGV[3]=ARGV[2]
|
||||||
|
}
|
||||||
|
|
||||||
network=and(ipaddr,netmask)
|
network=and(ipaddr,netmask)
|
||||||
broadcast=or(network,compl(netmask))
|
broadcast=or(network,compl(netmask))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue