panguu
Goto Top

Hostname -f (FQDN ausgeben) für Windows Betriebssysteme

Hallo und einen schönen Freitagabend allerseits,

ich schreibe gerade eine kleine Batch und stehe vor dem Problem, dass ich den Hostnamen der Windowsmaschine auslesen möchte aber als fully-qualified-domainname (FQDN). Unter Linux wäre das einfach zu realisieren mit "hostname -f". In Windows habe ich mich bisher beholfen mit "echo Hostname=%COMPUTERNAME%" jedoch beherbergt diese Variabel %COMPUTERNAME% nur den Hostnamen ohne Domainzusatz.

Wie könnte ich komfortabel und bequem den FQDN auslesen, sowohl auf XP als auch auf Win7 Clients?

Danke an Alle im Voraus und ein schönes Wochenende.

Content-Key: 187602

Url: https://administrator.de/contentid/187602

Printed on: April 19, 2024 at 17:04 o'clock

Member: lenny4me
lenny4me Jul 06, 2012 at 15:52:38 (UTC)
Goto Top
Huhu.

%computername%.%userdomain%.tld ?

Grüße aus dem Wochenende
Member: panguu
panguu Jul 06, 2012 updated at 16:20:10 (UTC)
Goto Top
Danke, aber leider wird damit die Domäne ausgegeben, die unter rechtsklick Arbeitsplatz definiert ist. Und %userdnsdomain% geht auch nur wenn der client an der Domäne angemeldet ist. Ich könnte auch mit ipconfig irgendwie das ganze auslesen wüsste aber nicht wie ich da greppen soll face-smile Am genauesten und hilfreichsten in meinem speziellen Falle wäre es, wenn ich den FQDN direkt aus meinem DNS-Server auslesen könnte. Und zwar möchte ich den Namen haben, der ausgespuckt wird wenn ich "nslookup meineIP" eingebe. Als Ergebnis möchte ich nur den Text m"einhostname.suffixvomdhcpserverfallsvorhanden.meinefirma.de" rauskriegen.

Wie mache ich das aber? ich finde nichtmal eine Variable für meine eigene IP damit ich sowas wie "nslookup %mylocalip%" nutzen kann face-smile

die eigene IP Variable generiere ich also mit diesem Einzeiler
"for /f "Tokens=2 Delims= skip=1" %i in ('ping -n 1 %computername%') do set IPAdress=%i"

falls aber noch ein IPv6 Interface aktiv ist, dann wird das genutzt, ist natürlich blöd face-sad

vielbesser wäre das mit "ipconfig | findstr "IPv4" aber wie soll ich das nun mit for /F Tokens kombinieren ??"
Member: bastla
bastla Jul 06, 2012 at 16:59:06 (UTC)
Goto Top
Hallo panguu!
vielbesser wäre das mit "ipconfig | findstr "IPv4" aber wie soll ich das nun mit for /F Tokens kombinieren ??"
Hatten wir neulich (mal wieder) hier ...

Grüße
bastla
Member: panguu
panguu Jul 06, 2012 updated at 20:57:48 (UTC)
Goto Top
danke für den Link, habs ausprobiert. Jedoch funktioniert das jeweils nur für XP oder Win7, nicht aber für beides. Denn ipconfig spuckt bei XP-Hosts aus "IP-Adresse" während Win7 schreibt "IPv4-Adresse" face-sad wie soll man das unter einen Hut bringen?

Kennt sonst noch jemand einen Einzeiler für diese IP-Variable erstellen? Eieiei... Win doof, ich glaubs ja gar nicht face-smile

EDIT: Juhuuu, ich habs anders gelöst und es scheint zu funktionieren. Anfangs bereitete es mir Probleme, wenn eine Maschine auch IPv6 Interface aktiv hat. Das hatte mir einen Strich durch die Rechnung gemacht, aber mit dem Schalter -4 klappts einwandfrei.

Hier mein Einzeiler:

for /f "Tokens=2 Delims= skip=1" %i in ('ping -n 1 -4 %computername%') do set IP=%i
echo %IP%

und gut is' ;)

Grüße,
Panguu.
Member: filippg
filippg Jul 07, 2012 updated at 00:41:46 (UTC)
Goto Top
hm.. Hast du ping -a 127.0.0.1 probiert? ping -a liefert eigentlich FQDNs, kann höchstens sein, dass das für localhost anders ist.

Gruß

Filipp
Member: panguu
panguu Jul 07, 2012 at 09:46:40 (UTC)
Goto Top
klappt doch schon alles, bin fertig und durch face-smile

PS: ping -a 127.0.0.1 würde nicht zum Ziel führen

Schönes weekend an Alle.