Externe IP über PowerShell beziehen


1

Ich möchte nur externe IP über Powershell erhalten Nur IP-Adresse, kein Header oder irgendetwas.

Ich versuche viele Dinge wie

(Invoke-WebRequest ifconfig.me/ip).Content

aber es hat diese extra zweite Zeile, die mir nicht gut tut.

Ich habe es auch versucht.

(Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE) | %{$_.ipaddress[0]}

Aber es funktioniert nicht für mich, weil ich hinter dem Router bin.

Vielen Dank.

Function IPV()
{
$IPCHK = ((Invoke-WebRequest ifconfig.me/ip).Content.Trim())
$IPCHK | Out-FIle 'CHKIP.txt'
}
$CurrentIP = ((Invoke-WebRequest ifconfig.me/ip).Content.Trim())
$PreviousIP = Get-Content 'CHKIP.txt'

IF($PreviousIP -eq ((Invoke-WebRequest ifconfig.me/ip).Content.Trim()))
    {
        $PreviousIP
        }
ELSE {
       ##SEND EMAIL SCRIPT
        IPV #RUN CHECK IP COMMAND AGAIN.
}

Können Sie erklären Warum Du brauchst diese Info? Der Versuch, die externe IP-Adresse eines Servers zu finden, ist wirklich schwierig.
splattered bits

2
Ich möchte dieses Skript ausführen, um zu überprüfen, ob sich meine externe IP geändert hat. Wenn dies der Fall ist, wird eine Benachrichtigung auf meinem iPhone gesendet.
user206168

Antworten:


2

Sie haben bereits Ihre Antwort. Sie möchten nur die zusätzliche Zeile loswerden - nichts zwingt Sie dazu, sie zu verwenden

(Invoke-WebRequest ifconfig.me/ip).Content

wie es ist. Stattdessen können Sie Folgendes verwenden:

(Invoke-WebRequest ifconfig.me/ip).Content.Trim()

Das String.Trim-Methode "Entfernt alle führenden und nachfolgenden Leerzeichen aus dem aktuellen String-Objekt."


Es vergleicht es immer noch nicht richtig. Bitte überprüfen Sie mein geschriebenes Skript, wenn ich dieses Skript starte, hat es noch eine zusätzliche Zeile. Vielen Dank
user206168

Trim() die Ausgabe von Get-Content, Nur um sicher zu gehen. Verwenden Sie auch Ihre $CurrentIP Variable. ;)
Daniel B

so wäre es Get-Content.Trim()?
user206168

Nein, es funktioniert so Invoke-WebRequest. Sie setzen Klammern um das und das .Trim() nachdem. Ich empfehle jedoch, eine neue Frage zu posten, da all dies zu sehr vom ursprünglichen Fokus dieser Frage abweicht.
Daniel B

Plz Siehe meine Lösung.
user206168

2

Eine Methode, die OpenDNS verwendet.

$(Resolve-DnsName -Name myip.opendns.com -Server 208.67.222.220).IPAddress

Es tut uns leid? Warum haben Sie nur den Befehl hinzugefügt, den ich vorgeschlagen habe?
Zoredache

Entschuldigung, falsch eingefügt Resolve-DnsName : The term 'Resolve-DnsName' is not recognized as the name of a cmdlet, function,
user206168

Ah, ich denke es ist eines der Win 8+ Commandlets. Ich vermute, Sie sind unter Windows 7?
Zoredache

Nein, ich verwende Windows 8.
user206168

0

Ich konnte mein Problem beheben, indem ich nur die erste Zeile aus der Textdatei auswählte. Ich konnte TRIM nicht erfolgreich verwenden und die leere Zeile entfernen.

Verwenden Sie dies Verknüpfung Ich habe folgendes getan.

Function IPV()
{
$IPCHK = ((Invoke-WebRequest ifconfig.me/ip).Content)
$IPCHK.TRIM() # Just Like tht.
$IPCHK > 'CHKIP.txt'
}
$CurrentIP = ((Invoke-WebRequest ifconfig.me/ip).Content.Trim())
$PreviousIP = Get-Content 'CHKIP.txt' | SELECT -First 1   #ONLY Selects First Line.

IF($PreviousIP -eq ((Invoke-WebRequest ifconfig.me/ip).Content.Trim()))
    {
        $PreviousIP
        }
ELSE {
        #DO YOUR STUFF :))
        IPV #RUN CHECK IP COMMAND AGAIN.
}

Ich hoffe es hilft.


Du benutzt immer noch nicht deine $CurrentIP Variable. : P
Daniel B

-1

Die oben genannten Daten funktionieren nicht mehr. Also habe ich persönlich eine Alternative zum obigen Skript gemacht.

Sie können dies in cmd / powershell eingeben, wenn Sie Ihre externe IP-Adresse nutzen möchten.

(Invoke-WebRequest https://lab.blackvikingpro.com/dev/ip.php).Content

Wenn diese Seite oder dieses Skript Fehler enthält, teilen Sie mir dies bitte mit. Vielen Dank!


Es gibt keine Möglichkeit, ein unbekanntes Skript auszuführen. Sie sollten entweder den gesamten Code hier einfügen oder Open Source verwenden Github oder Bit Bucket
Burgi
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.