以下内容适用于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
%>
但是我收到“列表索引超出范围”错误。我认为这也可能会导致变量作用域设置方面的问题,而我也想尽全力。
我也尝试定义一个函数来执行此操作,但是我有限的Python能力阻止了我的成功。
def get_octets(ip_string):
try:
OCTETS=CELLULAR_IP.split('.')
return FOURTH_OCTET=OCTETS[3]
except ValueError:
return 0
关于实现该目标我应该考虑什么?
最佳答案
这行得通,但似乎很麻烦。
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