Java :: Aufgabe #151

2 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von derHG (480 Punkte) - 27.12.2017 um 19:41 Uhr
Quellcode ausblenden Java-Code
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);
	}

}
vote_ok
von luckyluke (850 Punkte) - 14.02.2020 um 15:26 Uhr
Quellcode ausblenden Java-Code
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(); } }
1808815

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.