C# :: Aufgabe #158 :: Lösung #3

4 Lösungen Lösungen öffentlich
#158

Standort einer beliebigen Ip-Adresse

Anfänger - C# 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 ;)

#3
1x
vote_ok
von Mexx (2370 Punkte) - 08.01.2017 um 14:41 Uhr
Quellcode ausblenden C#-Code
using System;
using System.IO;
using System.Net;
using System.Windows.Forms;

namespace A158_IP_Locator
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Ermittelt den Standort des Server/Client mit der angegebenen IP-Adresse
        /// </summary>
        /// <param name="adress">Die IP-Adresse des Server/Client</param>
        private void CheckAdress(string adress)
        {
            //Eingabe prüfen
            IPAddress ip;
            if (!IPAddress.TryParse(adress, out ip))
            {
                MessageBox.Show(this, "Sie müssen eine gültige IP-Adresse im Format xxx.xxx.xxx.xxx eingeben", "Ungültige Eingabe",
                    MessageBoxButtons.OK, MessageBoxIcon.Stop);
                return;
            }

            string req = string.Format("http://freegeoip.net/csv/{0}", adress);
            Uri uri = new Uri(req);
            WebRequest request = WebRequest.Create(uri);
            WebResponse response = request.GetResponse();
            StreamReader srResponseStream = new StreamReader(response.GetResponseStream());
            string answer = srResponseStream.ReadToEnd();
            string[] ipInfo = answer.Split(',');
            string result = string.Format("IP-Adresse:\t{0}\nLänderkürzel:\t{1}\nLand:\t\t{2}\nStadt:\t\t{5}\n\nGeo-Koordinaten\nLängengrad:\t{8}\nBreitengrad:\t{9}",
                ipInfo);
            rtbResult.Text = result;
        }

        private void btnCheck_Click(object sender, EventArgs e)
        {
            CheckAdress(tbAdress.Text.Trim());
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben