Wie "host" im Terminal dazu bringen, NUR die IP auszuspucken (oder dig oder nslookup)

ratti

ratti

Aktives Mitglied
Thread Starter
Dabei seit
09.05.2004
Beiträge
1.521
Reaktionspunkte
56
So was blödes. ich komm nicht drauf.

Ich möchte gerade von unserem alten auf einen neuen DNS-Server umswitchen und wollte vorher noch mal automatisiert ausprobieren, ob unsere teilweise recht verschachtelten Domains alle korrekt antworten.

Also wollte ich mir ein kurzes Script schreiben, welches für einen Haufen subdomains, MX-Einträge und so einfach mal die Antwort von $ALTERSERVER und $NEUERSERVER vergleicht. Ich muss das leider alles händisch im Webinterface einpflegen, ergo sind Tippfehler möglich. Leider kann ich nicht einfach die BIND-Konfigdatei umschreiben.

Anscheinend gibt es aber für das "host"-Kommando (oder "dig" oder "nslookup") keinen --quiet-Switch, sodass NUR die IP in der Antwort steht. Er gibt immer mit aus „Antwort kam von Server blah.blaeh.blubb“, und somit schlägt mein Stringvergleich fehl. Mit RegExp drüberlaufen und so will ich nicht machen, da ist mir das Risiko eines verprogrammierens meinerseits zu groß. Die Antwort wimmelt ja von IPs.

Gibt es da was schlaues, das einfach mit „1.2.3.4“ antwortet, und feddich?

Gruß,
Jörg
 
host hostname|awk '{print $4}'

bloss wenn es eine IPv6 gibt hast dann noch unnötigen output bei...
 
host hostname|awk '{print $4}'

Danke - Aber das wäre dann ja im Prinzip genau die RegExp, die ich vermeiden möchte.

Weil, Beispiel:

Code:
host macuser.de|awk '{print $4}'
87.230.73.130
handled
oder
Code:
host gibtsnich.foo|awk '{print $4}'
found:
Da muss es ja was sauberes geben, an sich ist mein Anliegen ja nicht so weltfremd. ;-)

Gruß,
Jörg
 
wie wäre es dann mit
dig hostname +short
 
dig hostname +short

Cool, glatt überlesen. Danke. Das war es fast — er hangelt sich dann anscheinend noch durch die CNAMEs und gibt ggf. mehrere Zeilen aus. Das hier dürfte es dann final bringen:
Code:
dig host.example.com +short +noadditional
Danke und Tschüß,
Jörg
 
Zurück
Oben Unten