以下适用于Python命令行
CELLULAR='1.2.3.4'
OCTETS=CELLULAR_IP.split('.')
FOURTH_OCTET=OCTETS[3]
T101_IP='10.1.1.'+FOURTH_OCTET
T102_IP='10.1.2.'+FOURTH_OCTET
T103_IP='10.1.3.'+FOURTH_OCTET
T104_IP='10.1.4.'+FOURTH_OCTET
但是我在Mako模板中遇到了各种各样的麻烦。我想要完成的是在模板中传递一个变量中的IP地址,并获取该IP的最后一个八位字节并使用它来创建其他4个IP。我想我可以把它放在这样一个块中:
<%
OCTETS=CELLULAR_IP.split('.')
FOURTH_OCTET=OCTETS[3]
T101_IP='10.1.1.'+FOURTH_OCTET
T102_IP='10.1.2.'+FOURTH_OCTET
T103_IP='10.1.3.'+FOURTH_OCTET
T104_IP='10.1.4.'+FOURTH_OCTET
%>
但我得到&#34;列表索引超出范围&#34;错误。我认为这也可能导致变量范围的一些问题,我试图解决这个问题。
我也尝试定义一个函数来执行此操作,但我有限的Python能力阻止了我成功。
def get_octets(ip_string):
try:
OCTETS=CELLULAR_IP.split('.')
return FOURTH_OCTET=OCTETS[3]
except ValueError:
return 0
关于我应该看到什么来实现这个目标的任何想法?
答案 0 :(得分:1)
这行得通,但似乎很麻烦。
def get_octets(ip_string):
try:
return (ip_string).split('.')[3]
except:
# if ip_string won’t contain at least three . catch any exception and return -1
return -1