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?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

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