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';
मैं दास के आईपी पते को सिस्टम चर में जोड़कर सहेजने की कोशिश कर रहा हूं और इसे अगली नौकरी में पास कर रहा हूं। लेकिन जब मैं नौकरी चलाता हूं, तो मुझे अपवाद नीचे मिल रहा है: लॉग:
Slave Machine 2: X.X.X.X
java.lang.NumberFormatException: For input string: "X.X.X.X"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.<init>(Integer.java:867)
2 जवाब
आप ipad को पूर्णांक में नहीं डाल सकते। क्योंकि यह एक वैध पूर्णांक नहीं है। जैसा कि मैंने देखा है कि आईपैड को एक पूर्णांक में डालने के लिए आपको कोई अनिवार्य आवश्यकता नहीं है। इसलिए मेरी सिफारिश है कि String myString = new Integer(ipadd)
लाइन को निम्नलिखित लाइन से बदल दिया जाए।
String myString = new String(ipadd)
किसी IPv4 पते में 3 बिंदु होते हैं, इसलिए इसे सीधे Integer
के रूप में पार्स नहीं किया जा सकता है।
मुझे लगता है कि आप इसे आईपी 32 बिट्स का प्रतिनिधित्व करने वाले संबंधित int
में बदलने की कोशिश कर रहे हैं। यह जावा में इस तरह किया जा सकता है:
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);
}
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।