Servus, ich möchte für zwei verschiedene eingegebene Adressen versuchen, zu prüfen ob die Rechner erreichbar sind und die aufzulisten. ich weiß, was ich falsch gemacht habe. Danke schon im Voraus für Ihre Hilfe. Zudem habe ich eine andere Frage. wie kann ich den Inhat von zwei verschieden Arrays mit gleichen Länge vergleichen. die Methode Arrays.deepequals () und Arrays.equals() machen nicht genau was ich möchte, denn ich möchte, dass das erste Feld von der erste Adresse größer als dieses von der zweiten Adresse. ZB: wenn ich folgendes haben 10.10.10.10 -9.11.21.21 solltest es unmöglich sein die Adressen aufzulisten. Es ist ein bisschen lang geschrieben bitte kann jemand einen Blick darauf werfen. ich danke noch mal im Voraus
Java:
package heritage;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Scanner;
public class IPhoc {
public static void main(String[] args) {
int timeout=1000;
Scanner s1,s2;
String p1,p2;
byte ip1[];
byte ip2[];
s1= new Scanner (System.in);
System.out.println("Erste Adresse : ");
p1=s1.nextLine();
System.out.println("zweite Adresse :");
s2=new Scanner(System.in);
p2=s2.nextLine();
//String zu Byte konvertieren
ip1= p1.getBytes();
ip2=p2.getBytes();
for (int i = 1; i < 255; i++) {
try {
if (!Arrays.equals(ip1, ip2)) {
while(!Arrays.equals(ip1,ip2)) {
InetAddress ad = InetAddress.getByName(bytesToIpv4(ip1));
count(ip1);
if (ad.isReachable(timeout)) {
System.out.println("Der Computer " + ad.getHostName() + " mit IP Adressse " + bytesToIpv4(ip1) + " ist erreichbar");
}
/* else {
System.out.println(" Der Computer ist nichr verfügbar");
}
*/
}
}
else {
System.out.println("Die Adressen müssen verschieden sein");
}
{
}
} catch (IOException e) {}
}
}
// Konvertierung von IPV4 zu Byte
public static byte[] ipv4ToBytes(String ip) {
String[] parts = ip.split("\\.");
byte[] result = new byte[4];
int i=0;
while (i<result.length) {
result[i] = (byte) Integer.parseInt(parts[i]);
i++;
}
return result;
}
public static byte[] count(byte[] value) {
int i = value.length;
do {
i--;
value[i]++;
} while (value[i]== 0);
return value;
}
// Konvertierung von Byte zu IPV4
public static String bytesToIpv4(byte[] value) {
return String.format("%d.%d.%d.%d",
value[0] & 0xff, value[1] & 0xff, value[2] & 0xff, value[3] & 0xff);
}
}