我的代码如下。 在运行时它给了我以下错误:
import sys
import numbers
import idlelib
import importlib
(addrString, cidrString) = sys.argv[1].split('/')
addr = addrString.split('.')
cidr = int(cidrString)
mask = [0, 0, 0, 0]
for i in range(cidr):
mask[i/8] = mask[i/8] + (1 << (7 - i % 8))
net = []
for i in range(4):
net.append(int(addr[i]) & mask[i])
broad = list(net)
brange = 32 - cidr
for i in range(brange):
broad[3 - i/8] = broad[3 - i/8] + (1 << (i % 8))
print ("Address: ") , addrString
print ("Netmask: ") , ".".join(map(str, mask))
print ("Network: ") , ".".join(map(str, net))
print ("Broadcast: ") , ".".join(map(str, broad))
得到错误: Traceback(最近一次调用最后一次): 文件“C:\ Users \ solut \ Desktop \ subnet.py”,第7行,中 (addrString,cidrString)= sys.argv [2] IndexError:列表索引超出范围
答案 0 :(得分:0)
sys.argv
是命令行上的(字符串)参数列表。
您可能只使用太少的参数来运行脚本。
答案 1 :(得分:0)
在发送多个参数之前,您必须首先验证sys.argv
import sys
if len(sys.argv) >= 2:
addrString = sys.argv[1]
cidrString = sys.argv[2]
print(addrString)
print(cidrString)