Umwandlung einer IP-Adresse in binärer Darstellung (Java)
Ich versuche ein Programm zu schreiben, in Java, wird eine IP Adresse nehmen und in binary konvertieren.
Hier ist was ich habe, so weit:
import java.util.Scanner;
public class IpConverter{
public static void main (String[]args)
{
int result;
String data_in;
int data_out;
Scanner scan = new Scanner(System.in);
try
{
System.out.print("Enter an IP address: ");
data_in = scan.next();
data_out = Integer.parseInt(data_in, 10);
System.out.println (data_in + "is equivalent to" + data_out);
}
catch (NumberFormatException nfe){
System.out.println("Wrong data type!");
}
}
}
Angenommen die ips sind eingetragen in punktiert.quad-format (z.B. 127.0.0.1), parseint ist nicht zu geben Ihnen eine volle 32-bit-Darstellung, die, da, das ist nicht eine gültige int.
Für die Zukunft, wenn Sie wählen Sie den gesamten code und drücken Sie STRG+K, erhalten Sie eine große code-block anstelle der vielen kleinen, die Sie ursprünglich hatte.
Ja, 127.0.0.1 wäre das format, das ich will.
Es gibt Antworten auf die gleiche Frage in stackoverflow.com/questions/1146581/...
Für die Zukunft, wenn Sie wählen Sie den gesamten code und drücken Sie STRG+K, erhalten Sie eine große code-block anstelle der vielen kleinen, die Sie ursprünglich hatte.
Ja, 127.0.0.1 wäre das format, das ich will.
Es gibt Antworten auf die gleiche Frage in stackoverflow.com/questions/1146581/...
InformationsquelleAutor jerms246 | 2012-03-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gebäude auf jtahlborn' Antwort:
Nun
data_out
enthält die IP-Adresse als binäre Zahl.InformationsquelleAutor Óscar López
können Sie InetAddress zum Parsen der textuellen Repräsentation und konvertieren in ein byte[]. Sie können BigDecimal konvertieren byte [], um eine große Ganzzahl.
InformationsquelleAutor jtahlborn
also für die Eingabe 10.10.150.1
Ausgabe
1010
1010
10010110
1
Das ist komisch, der code ist kopiert direkt aus meinem code, der lief gut.
Alles andere muss ich importieren?Anderes als java.util.Scanner? Ich habe auch java.lang.String importiert.
Scanner die nur denken, Sie müssen importiert werden.
Funktioniert nicht, Mann. Sie denken, Sie könnten etwas mehr von deinem code zu sehen, wenn ich bin fehlt etwas?
InformationsquelleAutor Dan675
Wenn Sie wollen vermeiden, dass die Namensauflösung verwenden, können Sie den folgenden code, konvertiert eine IPv4-Adresse string in ein byte-array:
InformationsquelleAutor Michael Yakobi
Den open-source-IP-Adresse Java-Bibliothek kann dies für Sie tun. Es kann analysieren verschiedene IP-Adresse-Formate, einschließlich entweder IPv4 oder IPv6. Disclaimer: ich bin der Projekt manager die IP-Adresse der Bibliothek.
Hier ist Beispielcode ähnlich wie bei Ihnen:
Beispiel:
InformationsquelleAutor Sean F