Ich brauche Powershell, um IP-Adressen über Whois aufzulösen. Meine Firma filtert port 43 und WHOIS-Abfragen, so dass die Problemumgehung, die ich hier verwenden muss, Powershell ist, eine Website wie https://who.is zu verwenden, den http-Stream zu lesen und nach dem Organisationsnamen zu suchen, der der IP-Adresse entspricht.Finden Sie bestimmte Satz in einer Webseite mit Powershell
Bisher habe ich es geschafft, die Webseite in Powershell (Beispiel hier mit einem WHOIS auf yahoo.com) gelesen zu erhalten, die https://who.is/whois-ip/ip-address/206.190.36.45 ist
So, hier ist mein Code-Schnipsel:
$url=Invoke-WebRequest https://who.is/whois-ip/ip-address/206.190.36.45
jetzt, wenn ich tun:
$url.gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True False HtmlWebResponseObject Microsoft.PowerShell.Commands.WebResponseObject
ich sehe das Objekt mehrere Eigenschaften hat:
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
AllElements Property Microsoft.PowerShell.Commands.WebCmdletElementCollection AllElements {get;}
BaseResponse Property System.Net.WebResponse BaseResponse {get;set;}
Content Property string Content {get;}
Forms Property Microsoft.PowerShell.Commands.FormObjectCollection Forms {get;}
Headers Property System.Collections.Generic.Dictionary[string,string] Headers {get;}
Images Property Microsoft.PowerShell.Commands.WebCmdletElementCollection Images {get;}
InputFields Property Microsoft.PowerShell.Commands.WebCmdletElementCollection InputFields {get;}
Links Property Microsoft.PowerShell.Commands.WebCmdletElementCollection Links {get;}
ParsedHtml Property mshtml.IHTMLDocument2 ParsedHtml {get;}
RawContent Property string RawContent {get;}
RawContentLength Property long RawContentLength {get;}
RawContentStream Property System.IO.MemoryStream RawContentStream {get;}
Scripts Property Microsoft.PowerShell.Commands.WebCmdletElementCollection Scripts {get;}
StatusCode Property int StatusCode {get;}
StatusDescription Property string StatusDescription {get;}
aber jedes Mal, wenn ich versuchen, Befehle wie
$url.ToString() | select-string "OrgName"
Powershell gibt den gesamten HTML-Code, weil es die Textzeichenfolge als Ganzes interpretiert. Ich fand eine Problemumgehung, indem ich die Ausgabe in eine Datei ablege und dann die Datei durch ein Objekt lese (also jede Zeile ist ein Element eines Arrays), aber ich habe Hunderte von IPs zu überprüfen, so dass es nicht sehr optimal ist, eine Datei zu erstellen.
Ich würde gerne wissen, wie ich den Inhalt der Webseite https://who.is/whois-ip/ip-address/206.190.36.45 lesen konnte und die Zeile, die sagt: OrgName: Yahoo! Broadcast Services, Inc.
und nur diese Zeile.
Vielen Dank für Ihre Hilfe! :)
konnte ich nicht meine eigene Frage bearbeiten, so bin ich das Hinzufügen Kommentar hier aber offensichtlich $ url, $ web, $ a sind eigentlich die ein und die selbe Variable. Ich habe vergessen, meinen Entwurf richtig zu bearbeiten, sorry für die Verwirrung. – Bluz
Die Variablen wurden so geändert, dass sie der erste von Ihnen verwendete Name sind. – Matt