Public IP mit PowerShell abrufen

5
(1)

Invoke-WebRequest Internet IP Abfrage

Das PowerShell Cmdlet Invoke-WebRequest ist die HTTP Abfrage ab PowerShell 3.0 für das Web. Dieses Cmdlet kann jedes HTTP-Verb wie GET POST PUT HEAD CONNECT u.a.m. mit HTTP-Parameter an einen WebServer senden und als HTTP-Header ausgeben. Invoke-WebRequest und Invite-RestMethod sind auch als Aliase anwendbar, wie diese von Unixoiden Systeme mit curl und wget bekannten sind.

Invoke-WebRequest sendet HTTP- und HTTPS-Anforderungen an eine Webseite auf einem WebServer. Es analysiert die Antwort und gibt Sammlungen von Links, Bildern und andere wichtige HTML-Elemente zurück.

Invoke-WebRequest kann beispielsweise in der PowerShell die eigene Public IP zurückgeben diese der Router vom ISP erhalten hat.

PS C:\> Invoke-WebRequest ipline.ch | Select-Object -Property Content | Format-List

Content : 12.34.56.7

Die HTTP-Header RAW Status Ausgabe mit Invoke-WebRequest.

PS C:\> Invoke-WebRequest echo.ipline.ch

StatusCode        : 200
StatusDescription : OK
Content           : 12.34.56.78

RawContent        : HTTP/1.1 200 OK
                    Keep-Alive: timeout=5, max=100
                    Connection: Keep-Alive
                    Content-Length: 12
                    Content-Type: text/html; charset=UTF-8
                    Date: Sun, 26 Jul 2020 10:08:48 GMT
                    Server: Apache/2.4.6 (CentOS) ...
Forms             : {}
Headers           : {[Keep-Alive, timeout=5, max=100], [Connection, Keep-Alive], [Content-Length, 12], [Content-Type, text/html;
                    charset=UTF-8]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : mshtml.HTMLDocumentClass
RawContentLength  : 1

Wird folgender Fehler ausgegeben, muss der Internet-Explorer gestartet werden, oder mit Parameter UseBasicParsing ausführen.

Invoke-WebRequest : Der Antwortinhalt kann nicht analysiert werden, da das Internet Explorer-Modul nicht verfügbar ist, oder die Konfiguration beim ersten Start von Internet Explorer ist nicht abgeschlossen. Geben Sie den UseBasicParsing-Parameter an, und wiederholen Sie den Vorgang.

PS C:\> Invoke-WebRequest ipline.ch -UseBasicParsing

Die HTTP-Headers Ausgabe von Invoke-WebRequest alias curl.

PS C:\> curl unblog.ch/ifconfig | Select Headers

Headers
-------
{[Content-Length, 3109], [Content-Type, text/html; charset=UTF-8], [Date, Sun, 26 Jul 2020 10:15:46 GMT], [Server, Apache/2.4.6 (CentOS

Links von einer Webseite Abrufen

In diesem Beispiel werden die Links einer Webseite ausgegeben. Das Cmdlet ermöglicht den Inhalt einer Webseite mit den Links (href) zurückzugeben.

PS C:\> (Invoke-WebRequest -Uri "https://unblog.ch").Links.Href
https://unblog.ch/ifconfig/
https://think.unblog.ch/
#search-container

Senden einer Formulardatendatei

In diesem Beispiel wird das Aktualisieren eines Benutzerprofils veranschaulicht. multipart/form-data.

PS C:\> $Uri = 'https://api.contoso.com/v3/profile'
$Form = @{
    firstName  = 'Mike'
    lastName   = 'Smith'
    email      = 'mike.smith@contoso.com'
    avatar     = Get-Item -Path 'c:\Pictures\mike.png'
    birthday   = '1984-12-21'
    hobbies    = 'Cycling','Wakling','Jogging'
}
$Result = Invoke-WebRequest -Uri $Uri -Method Post -Form $For

Das Profilformular erfordert die Felder kommagetrennt wie folgt: , , , , u.s.w. Die API erwartet, dass ein Bild für das Benutzerprofilbild im Feld bereitgestellt wird. Die API akzeptiert auch mehrere Einträge, die im gleichen Formular übermittelt werden sollen. firstName lastName email avatar birthday hobbies.

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 5 / 5. Anzahl Bewertungen: 1

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.