Python :: Aufgabe #138
3 Lösungen

Standort einer beliebigen Ip-Adresse
Anfänger - Python
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 urllib2 from urllib2 import HTTPError input = raw_input('enter Ip') # call API, sample input: # input = '66.249.66.1' try: response = urllib2.urlopen('http://freegeoip.net/csv/%(name)s' % {'name':input}) except HTTPError: print('the given ip %s is not valid' % input) exit() # parse and print result= {} data = response.read().split('\n')[0].split(',') result['ip'] = data[0] result['country_code'] = data[1] result['city'] = data[5] result['latitude']= data[8] result['longitude'] = data[9] print('The Ip %(ip)s is in country %(country_code)s, in city %(city)s, its geo coordinates are (%(latitude)s, %(longitude)s) ' % result)

import os, sys import time import urllib.request def getLocation(ip_address): try: u = urllib.request.urlopen \ ("https://freegeoip.net/csv/"+ip_address) except: print("ERROR!") sys.exit(0) li = u.readlines() u.close() li2=str(li) li2=li2[3:len(li2)-10] li = li2.split(',') os.system("cls") print("\n\nDie IP "+li[0]+" befindet sich in dem Land "+li[1]+" in der Stadt "+ li[5]+", die Geo-Koordinaten sind "+li[8]+","+li[9]) def main(): ip_address=input("Please enter an ip address!\n") print("\n") locationInformation=getLocation(ip_address) if __name__ == '__main__': main()

import requests ip = input("Bitte IP eingeben: ") url = 'http://api.ipstack.com/'+ip+'?access_key=0721190455d8adf1889e96271b928a7e'.format(ip) res = requests.get(url) data = res.json() ip_address = data['ip'] continent = data['continent_code'] latitude = data['latitude'] longitude = data['longitude'] capital = data['location']['capital'] print('Breitengrad : {}'.format(latitude)) print('Längengrad : {}'.format(longitude)) print('IP Adresse : {}'.format(ip_address)) print('Kontinent : {}'.format(continent)) print('Stadt : {}'.format(capital))