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(); } }