Forum: PC-Programmierung Hostname auflösen und Datei ändern


von Woern92 (Gast)


Lesenswert?

Guten Morgen,

ich suche nach einer einfachen Lösung mit Batch oder VBScript einen 
Hostnamen (z.B. "test.ddns.org")in die IP aufzulösen, und dann in einer 
Datei "config.cfg" den String "[HOST]" durch die IP zu ersetzen.

für eure Hilfe wäre ich sehr dankbar.

MFG

von Gerhard (Gast)


Lesenswert?

Unter DOS anpingen und die Rückgabe (IP in der 1. Zeile) auswerten.
1
C:\ping mikrocontroller.net
2
3
Pinging mikrocontroller.net [78.46.249.179] with 32 bytes of data:
4
Reply from 78.46.249.179: bytes=32 time=66ms TTL=49
5
Reply from 78.46.249.179: bytes=32 time=66ms TTL=49
6
Reply from 78.46.249.179: bytes=32 time=64ms TTL=49
7
Reply from 78.46.249.179: bytes=32 time=65ms TTL=49
8
9
Ping statistics for 78.46.249.179:
10
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
11
Approximate round trip times in milli-seconds:
12
    Minimum = 64ms, Maximum = 66ms, Average = 65ms
13
14
C:\

von Woern92 (Gast)


Lesenswert?

Ja so habe ich mir das auch gedacht,
aber das Problem ist ich weiß nicht wie man das Programmiert :D

von guest (Gast)


Lesenswert?

Gerhard schrieb:
> Unter DOS anpingen und die Rückgabe (IP in der 1. Zeile) auswerten.

Dann wohl eher nslookup, das ist eigentlich genau dafür da. Also:
1
nslookup test.ddns.org

von Manfred (Gast)


Lesenswert?

Woern92 schrieb:
> ich weiß nicht wie man das Programmiert

Windows-Hilfe zu den CMD-Kommandos lesen? Probieren?
Ping /? eintippen?
find /? eintippen?

Ansatz:
ping mikrocontroller.net -n 1 |find /i "Bytes=" >>c:\temp\antwort.txt

von S. R. (svenska)


Lesenswert?

Manfred schrieb:
> ping mikrocontroller.net -n 1 |find /i "Bytes=" >>c:\temp\antwort.txt

Beachte, dass die Ausgaben von Windows-Befehlen immer in der Sprache des 
Windows erfolgen.

von Rolf M. (rmagnus)


Lesenswert?

S. R. schrieb:
> Beachte, dass die Ausgaben von Windows-Befehlen immer in der Sprache des
> Windows erfolgen.

Gibt's da kein Pendant zu einem "LANG=C" aus der Unix-Welt?

von S. R. (svenska)


Lesenswert?

Rolf M. schrieb:
> Gibt's da kein Pendant zu einem "LANG=C" aus der Unix-Welt?

Mir ist keins bekannt. Man kann allerdings seit Vista (abhängig von der 
Edition) Sprachpakete nachinstallieren, die (fast) das gesamte System 
umlokalisieren. Das wäre dann aber pro Nutzer, und ob Tools wie "ping" 
betroffen sind, weiß ich nicht.

von Jim M. (turboj)


Lesenswert?

Rolf M. schrieb:
> Gibt's da kein Pendant zu einem "LANG=C" aus der Unix-Welt?

Ist in den meisten Windows Versionen leider fest einkompiliert.

Unter neuestem Windows 10 könnte man sich IMO direkt mit dem Ping aus 
dem Linux/Ubuntu Substystem behelfen - aber das ist natürlich erst zu 
installieren.

von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

Jim M. schrieb:
> Rolf M. schrieb:
>> Gibt's da kein Pendant zu einem "LANG=C" aus der Unix-Welt?
>
> Ist in den meisten Windows Versionen leider fest einkompiliert.
>
> Unter neuestem Windows 10 könnte man sich IMO direkt mit dem Ping aus
> dem Linux/Ubuntu Substystem behelfen - aber das ist natürlich erst zu
> installieren.

Ach du mein lieber Schwan ! (pun intended)
Da lob ich mir eine verlässlich konforme POSIX-/GNU-Umgebung, zur Not 
aus cygwin
1
$ OTHERHOSTIP=$(host test.ddns.org ¦ grep -oP '(?<= has address )[\.\d]+')
2
$ sed -i -e 's:\[HOST\]:'"$OTHERHOSTIP"':g' /path/to/config.cfg

Standard caveats apply, YMMV.
Und ja, das geht auch als Einzeiler ohne die Hilfsvariable.

von Jack (Gast)


Lesenswert?

Windows Powershell's Resolve-DnsName mag eine Alternative sein. 
Allerdings muss man erst mal mit der Windows Powershell Quatsch warm 
werden.

von c-hater (Gast)


Lesenswert?

Jack schrieb:

> Windows Powershell's Resolve-DnsName mag eine Alternative sein.
> Allerdings muss man erst mal mit der Windows Powershell Quatsch warm
> werden.

Ja.

Wenn man aber erstmal damit warmgeworden ist, dann stellt man sehr 
schnell fest, dass das Zeug eine bash weit in den Schatten stellt. 
OO-Programmierung auf der Kommandozeile, ohne kaum überschaubare 
Quoting-Orgien und ohne völlig abstruse Kontrollstrukturen-Syntax.

Das ist definitiv die Zukunft. Bzw.: die Gegenwart, auch unter Linux, 
denn auch dort wird man jedes nichttriviale Problem heute bevorzugt mit 
einer OO-Scriptsprache erledigen, wie etwa Perl oder Python. Deren 
Konzepte entsprechen ziemlich genau dem der MS-PS. Welch' ein Zufall...

Nur Ewiggestrige haben den Schuss nicht gehört und hakeln weiter mühsam 
mit dem historischen Dreck rum...

von Manfred (Gast)


Lesenswert?

S. R. schrieb:
> Manfred schrieb:
>> ping mikrocontroller.net -n 1 |find /i "Bytes=" >>c:\temp\antwort.txt
>
> Beachte, dass die Ausgaben von Windows-Befehlen immer in der Sprache des
> Windows erfolgen.

Ist mir bekannt!

Und nun rate mal, weshalb ich find nicht auf "Antwort" bzw. "reply" 
angesetzt habe, sondern auf "Bytes". Dann schauen wir noch, was "/i" 
bewirkt und freuen uns, dass sowohl "bytes" als auch "Bytes" einen 
Treffer erzielt.

Mein Vorschlag ist nicht als sauber fertige Lösung zu verstehen, ich 
habe "Ansatz:" drüber geschrieben. Egal, es sollte genügen sich eine 
Lösung zu erarbeiten.

von S. R. (svenska)


Lesenswert?

c-hater schrieb:
> Das ist definitiv die Zukunft.

Die Zukunft heißt "mobile" und "app" und wird mit Kotlin (derzeit Java) 
oder Swift (derzeit Objective-C) gemacht. Da geht dann alles 
automatisch, Alexa sei Dank.

Aber ich staune, dass du ein Fanboy bist...

von Kommandozeile vor dem Frühstück für Alle! (Gast)


Lesenswert?

> Wenn man aber erstmal damit warmgeworden ist, dann stellt man sehr
> schnell fest, dass das Zeug eine bash weit in den Schatten stellt.
> OO-Programmierung auf der Kommandozeile, ohne kaum überschaubare
> Quoting-Orgien und ohne völlig abstruse Kontrollstrukturen-Syntax.
>
> Das ist definitiv die Zukunft. Bzw.: die Gegenwart, auch unter Linux,
> denn auch dort wird man jedes nichttriviale Problem heute bevorzugt mit
> einer OO-Scriptsprache erledigen, wie etwa Perl oder Python. Deren
> Konzepte entsprechen ziemlich genau dem der MS-PS. Welch' ein Zufall...

Ich bin prinzipiell ganz bei deinem Gedankengang, inkl. /shell quoting 
hell/ und sogar beim Schluss dass MS v.A. Gutes zukauft oder 
abgekupfert.  >:-)

> Nur Ewiggestrige haben den Schuss nicht gehört und hakeln weiter mühsam
> mit dem historischen Dreck rum...

Und? Zeig her die Problemlösung nach Deiner Geschmacksrichtung!
Hat Dein Kunde/Chef diese bereits operativ auf dem Tisch liegen?
Oder überlegt er sich noch ob er Dich überhaupt engagieren soll?

Ich bevorzuge auch Python weil ich Perl nicht mag, zitiere hier aber L. 
Wall: "Get the job done right before you get fired."

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.