GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Befehlszeilendienstprogramm zum Auflösen von Hostnamen mithilfe von /etc/hosts zuerst

Lösung 1:

Mit getent ist dies ganz einfach möglich :

getent hosts 127.0.0.1

getent sucht nach allen Arten von Daten, die in nsswitch.conf konfiguriert sind .

Lösung 2:

Ein Werkzeug, das funktionieren würde, ist getent . Sie könnten also getent hosts www.google.com verwenden , oder getent hosts localhost . Es ruft Einträge aus den Datenbanken ab, wie in Ihrer Name Service Switch-Konfiguration angegeben /etc/nsswitch.conf .

Verwenden Sie für modernere Implementierungen getent ahosts www.google.com wodurch mehrere Ergebnisse erzielt werden.

Lösung 3:

Verwenden Sie getent ahosts , zum Beispiel:

$ getent ahosts www.google.com | sed -n 's/ *STREAM.*//p'
216.58.210.196
2a00:1450:4006:803::2004

Sie erhalten alle IPv4- und IPv6-Adressen über den Glibc-Resolver (also mit /etc/hosts zuerst, wie normalerweise in /etc/nsswitch.conf konfiguriert ).

Verwenden Sie nicht getent hosts , da es Ihnen entweder IPv6- oder IPv4-Adressen (nicht beides) gibt und das ausgewählte Protokoll möglicherweise nicht eines ist, das nicht funktioniert. Tatsächlich werden IPv6-Adressen im Allgemeinen bevorzugt, aber an einigen Stellen werden IPv6-Daten von den Routern gefiltert (nicht unterstützt).

Lösung 4:

Sie können einen Wrapper gethostbyname() (veraltet) verwenden wie:

python -c 'import socket;print socket.gethostbyname("www.google.com")'

Oder ein getaddrinfo() Wrapper wie:

python -c 'import socket;print socket.getaddrinfo("www.google.com","http")[0][4][0]'

Beachten Sie, dass getaddrinfo alle Instanzen als Liste zurückgibt. Der letzte Teil des Befehls wählt nur das erste Tupel aus. Dies kann auch IPv6-Adressen zurückgeben.

Lösung 5:

resolveip werde dies tun.

Seltsamerweise ist es Teil der mysql-server-Pakete auf RHEL und Ubuntu.


Linux
  1. Eine benutzerspezifische Hosts-Datei erstellen, um /etc/hosts zu ergänzen?

  2. So starten Sie Linux über die Befehlszeile neu

  3. /etc/hosts-Datei unter Linux verstehen

  4. Befehlszeilenprogramm zum Drucken von Zahlenstatistiken unter Linux

  5. Wie erstelle ich in meiner Datei /etc/hosts/ unter Linux/OSX eine Wildcard-Subdomain?

So erstellen Sie eine Datei in Linux mit Terminal/Befehlszeile

So testen Sie die Internetgeschwindigkeit über die Befehlszeile in Linux

Der richtige Weg zum Bearbeiten von /etc/passwd- und /etc/group-Dateien unter Linux

Node.JS über die Linux-Befehlszeile deinstallieren?

Paralleler Download mit dem Curl-Befehlszeilendienstprogramm

Größenbeschränkung von /etc/hosts (Linux)