Java :: Aufgabe #151
2 Lösungen
Standort einer beliebigen Ip-Adresse
Anfänger - Java
von ZRX88
- 30.12.2016 um 13:04 Uhr
In Python Aufgabe 101 ( https://trainyourprogrammer.de/python-101-ermitteln-der-ip-klasse.html)
war die Aufgabenstellung für die eingegebene IP die Klasse zu bestimmen.
Viel spannender ist ( aus meiner Sicht) der Standort des Servers:
Nutzt die API https://freegeoip.net/ um den Standort der eingebenen Ip-Adresse ausgeben wird.
Beispiel:
Eingabe = 66.249.66.1
Ausgabe = Die Ip 66.249.66.1 befindet sich in dem Land US in der Stadt Mountain View, die Geo Koordinaten sind 37.4192,-122.0574
p.s. Die Beispiel Ip ist die Ip des Google Bots ;)
war die Aufgabenstellung für die eingegebene IP die Klasse zu bestimmen.
Viel spannender ist ( aus meiner Sicht) der Standort des Servers:
Nutzt die API https://freegeoip.net/ um den Standort der eingebenen Ip-Adresse ausgeben wird.
Beispiel:
Eingabe = 66.249.66.1
Ausgabe = Die Ip 66.249.66.1 befindet sich in dem Land US in der Stadt Mountain View, die Geo Koordinaten sind 37.4192,-122.0574
p.s. Die Beispiel Ip ist die Ip des Google Bots ;)
Lösungen:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
public class JavaAufHtml {
static String eingabe;
public static void main(String[] args) throws Exception {
JavaAufHtml http = new JavaAufHtml();
System.out.print("Bitte IP eingeben: ");
Scanner sc = new Scanner(System.in);
eingabe = sc.next();
sc.close();
http.sendGet();
}
private void sendGet() throws Exception {
String url ="http://www.freegeoip.net/csv/"+eingabe;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection)obj.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
String buf = response.toString();
String[] teile = buf.split("\\,");
String IP = teile[0];
String laK = teile[1];
String laL = teile[2];
String stK = teile[3];
String stL = teile[4];
String std = teile[5];
String post = teile[6];
String utc = teile[7];
String lat = teile[8];
String lon = teile[9];
String metr = teile[10];
//print result
System.out.println("Die IP "+IP+" befindet sich in dem Land "+laK+" in der Stadt "+"\n"
+std+", die Geo Koordinaten sind "+lat+", "+lon);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.ProtocolException;
import java.net.URL;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Webrequest {
Scanner scan = new Scanner(System.in);
public void openUrl() throws IOException {
System.out.print("IP needed: ");
String ip = scan.nextLine().replace(",", ".").replace(" ", "");
URL url = new URL("http://api.ipstack.com/" + ip + "?access_key=Zitat:
Hier muss dein access key rein
&language=de&fields=main");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
StringBuilder content;
try (BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()))) {
String line;
content = new StringBuilder();
while ((line = in.readLine()) != null) {
content.append(line);
content.append(System.lineSeparator());
}
}
String contentAsString = content.toString().replace("\"", " ").replace("{", "").replace("}", "");
List<String> infoArray = Arrays.asList(contentAsString.split(","));
for (int i = 0; i < infoArray.size(); i++) {
System.out.println(infoArray.get(i));
}
}
public static void main(String[] args) throws IOException {
Webrequest webrequest = new Webrequest();
webrequest.openUrl();
}
}
