Tutorials  /  Python

Python - IP-Adresse aus Hostname ermitteln

Ccentron Redaktion · Februar 2024 ·2 Min. Lesezeit ·Python, Tutorial

Python Socket-Modul zum Abrufen der IP-Adresse aus dem Hostnamen

Das Python Socket-Modul gethostbyname()-Funktion akzeptiert einen Hostnamen als Argument und gibt die IP-Adresse im String-Format zurück.

Hier ist ein einfaches Beispiel im Python-Interpreter, um die IP-Adresse einiger Websites herauszufinden.

Console
# python3.7
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 16:52:21) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> import socket
>>> socket.gethostbyname('journaldev.com')
'45.79.77.230'
>>> socket.gethostbyname('google.com')
'172.217.166.110'
>>> 

Hinweis: Wenn die Website hinter einem Load-Balancer liegt oder in der Cloud arbeitet, erhalten Sie möglicherweise ein anderes Ergebnis bei der IP-Adresssuche.

VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

Python-Skript um IP-Adresse aus Hostname ermitteln

Lassen Sie uns ein Beispiel betrachten, bei dem wir den Benutzer bitten, eine Website-Adresse einzugeben und dann deren IP-Adresse auszudrucken.

Python
import socket

hostname = input("Please enter website address:\n")

# IP lookup from hostname
print(f'The {hostname} IP Address is {socket.gethostbyname(hostname)}')
Python get ip address hostname

Hier ist ein weiteres Beispiel, um den Hostnamen als Befehlszeilenargument an das Skript zu übergeben. Das Skript wird die IP-Adresse finden und ausdrucken.

Python
import socket
import sys

# no error handling is done here, excuse me for that
hostname = sys.argv[1]

# IP lookup from hostname
print(f'The {hostname} IP Address is {socket.gethostbyname(hostname)}')

Output:

Console
# python3.7 ip_address.py facebook.com
The facebook.com IP Address is 157.240.23.35

IP-Adresse aus Hostname ermitteln - Fehlerszenarien mit socket.gethostbyname()

Wenn der Hostname nicht in eine gültige IP-Adresse aufgelöst wird, wird socket.gaierror ausgelöst. Wir können diesen Fehler in unserem Programm mit einem try-except-Block abfangen.

Hier ist das aktualisierte Skript mit Ausnahmebehandlung für ungültige Hostnamen.

Python
import socket
import sys

hostname = sys.argv[1]

# IP lookup from hostname
try:
    ip = socket.gethostbyname(hostname)
    print(f'The {hostname} IP Address is {ip}')
except socket.gaierror as e:
    print(f'Invalid hostname, error raised is {e}')

Output:

Console
# python3.7 ip_address.py jasjdkks.com               
Invalid hostname, error raised is [Errno 8] nodename nor servname provided, or not known
Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren