Mein erstes "sinnvolles Programm" - IP Geo Daten
Verfasst: Donnerstag 29. März 2018, 23:11
Hey Leute, ich beschäftige mich seit dieser Woche mit Python und ist sozusagen meine erste Sprache. Nun habe ich ein kleines Tool entwickelt, mit den man Geo Daten einer IP auslesen kann für die Anzeige (um die Anzahl der Leerzeichen zu ermitteln, habe ich ein seperates Programm geschrieben). Neben Python beschäftige ich mich noch mit C. Langfristig interessiert mich der Bereich der KI's. Ich werde wohl/hoffentlich länger hier sein.
Das Programm:
Was nicht gut ist:
- keine Kommentare
- Variablenbezeichnung ist katastrophal (werde ich bei Gelegenheit nach bessern)
Was noch kommt:
-ein kleiner Log als Txt
-IP Check vor dem senden
-check, ob Website online ist
(- GUI)
Jetzt probiere ich mich etwas an den Web Frameworks
Das Programm:
Zum Leerzeich ermitteln, damit es ordentlich aussieht:Code: Alles auswählen
from urllib.request import urlopen #importieren from urllib.parse import urlparse import time import sys import random def speziell(): print("\n") for k in range(101): time.sleep(random.uniform(0.001, 0.003)) sys.stdout.write("\r%d%%" % k + " geladen") sys.stdout.flush() def frage(): frage = str(input("Deine Ip oder eine andere? [M/A] und Q zum verlassen oder h für Hilfe!: ")) if frage == "M" or frage == "m": return True if frage == "A" or frage == "a": return False if frage == "Q" or frage == "q": return "Ciao" if frage == "h" or frage == "H": return "Help" if frage != "A" or frage != "a" or frage != "M" or frage !="m" or frage != "Q" or frage != "q" or frage != "h" or frage != "H": return "Fehler" def main(): global l l = [] data = str(check.read()) if data.find("fail") != -1: print("IP ADRESSE: ", eingabe) print("Verbindung: fehlgeschlagen") quit() a = (data.count(",")) data = data[2:len(data)] n = data.find(",") l.insert(i, data[:n]) data = data[n+1:len(data)] l.insert(i+1, data[:(len(data)-1)]) l[0] = "erfolgreich" def liste(): #fkt fuer Liste l1 = ["Verbindung: ", "Land: ", "Landescode: ", "Bundesland-Abk.:", "Bundesland: ", "Stadt: ", "PLZ: ", "Breitengrad: ", "Laengengrad: ", "Zeitzone: ", "ISP: ", "Organisation ", "AS Nummer: ", "IP ADRESSE: "] #Tabelle print("\n") print(l1[13], l[13]) for j in range(0, 13): print(l1[j], l[j]) print("\n") def hilfe(): print("\n ================ HILFSEITE ================") print("\nMit diesem Programm kannst du Geodaten von IP's bestimmen.\n[M/m] = Damit bestimmst du deine eigene IP.\n[A/a] = Hiermit kannst du eine andere IP bestimmen oder die Ip von Websiten") print(" Dazu gibst du die Seite im folgenden Format ein: 'xyz.tld'!\n") print("\nSollte 'Verbindung: fehlgeschlagen' erscheinen, so gibt es deine IP nicht oder dem Programm ist es nicht möglich die Daten auszulesen.") print("\n\nDie Daten werden von der Api der Seite http://ip-api.com ausgelesen.") print("\n\nMade by addi\n\n") meine = frage() if meine == "Help": hilfe() if meine == True: speziell() eingabe = 0 check = urlopen("http://ip-api.com/csv?lang=de") main() liste() if meine == False: s = "" eingabe = str(input("Deine gesuchte Ip Adresse?: ")) check = "http://ip-api.com/csv/" lang = "?lang=de" check = s.join([check, eingabe, lang]) check = urlopen(check) main() liste() if meine == "Fehler": print("Bitte waehle zwichen den beiden optionen")
Die Funktion "speziell" ist eine kleine Spielerei, wollte das ausprobieren.Code: Alles auswählen
l1 = ["Verbindung:", "Land:", "Landescode:", "Bundesland-Abk.:", "Bundesland:", "Stadt:", "PLZ:", "Breitengrad:", "Laengengrad:", "Zeitzone:", "ISP:", "Organisation", "AS Nummer:", "IP ADRESSE:"] l = len(l1) l2 = [] while l >= 1: for i in range(len(l1)-1): if len(l1[i]) > len(l1[i+1]): zwichen = l1[i] l1[i] = l1[i+1] l1[i+1] = zwichen l = l - 1 print("Leerzeichen") s="" for i in range(len(l1)): a = len(l1[13]) - len(l1[i]) b = a * " " l2.insert(i, s.join([l1[i], b])) print(l2)
Was nicht gut ist:
- keine Kommentare
- Variablenbezeichnung ist katastrophal (werde ich bei Gelegenheit nach bessern)
Was noch kommt:
-ein kleiner Log als Txt
-IP Check vor dem senden
-check, ob Website online ist
(- GUI)
Jetzt probiere ich mich etwas an den Web Frameworks