Python :: Aufgabe #138

3 Lösungen Lösungen öffentlich

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

Lösungen:

vote_ok
von ZRX88 (2170 Punkte) - 01.01.2017 um 17:55 Uhr
Quellcode ausblenden Python-Code
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)
vote_ok
von hsiemens (290 Punkte) - 20.01.2017 um 12:05 Uhr
Quellcode ausblenden Python-Code
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()
vote_ok
von chrisziska (40 Punkte) - 09.08.2018 um 15:24 Uhr
Quellcode ausblenden Python-Code
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))