order_status
我试图通过将其添加到System变量并将其传递给下一个job来保存slave的ip地址。但是当我运行这个作业时,我遇到了异常: 日志:
def ipadd = addr.hostAddress
//println ipadd
String myString = new Integer(ipadd);
def pa = new ParametersAction([new StringParameterValue('IPADDR', myString)]);
Thread.currentThread().executable.addAction(pa)
println 'Script finished! \n';
答案 0 :(得分:1)
IPv4地址中包含3个点,因此无法直接将其解析为Integer
。
我想你试图将它转换为代表IP 32位的相应int
。这可以用Java完成:
public static int ipToInt32(String ip) {
Inet4Address ipAddress;
try {
ipAddress = (Inet4Address) InetAddress.getByName(ip);
} catch (UnknownHostException e) {
throw new IllegalStateException("Cannot convert IP to bits: '" + ip + "'", e);
}
byte[] ipBytes = ipAddress.getAddress();
return ((ipBytes[0] & 0xFF) << 24)
| ((ipBytes[1] & 0xFF) << 16)
| ((ipBytes[2] & 0xFF) << 8)
| (ipBytes[3] & 0xFF);
}
答案 1 :(得分:0)
您无法将ipadd强制转换为整数。因为它不是有效的整数。我认为没有强制要求你将ipadd强制转换为整数。因此,我的建议是用以下行替换行String myString = new Integer(ipadd)
。
String myString = new String(ipadd)