Trouver des phrase dans une page web à l'aide de powershell

J'ai besoin d'utiliser powershell pour résoudre les adresses IP via le whois. Mon entreprise filtres port 43 et requêtes WHOIS de sorte que la solution de contournement que j'ai à utiliser ici est de demander powershell pour l'utilisation d'un site comme https://who.is, lire les flux http et recherchez le Nom de l'Organisation correspondant à l'adresse IP.

Jusqu'à présent j'ai réussi à obtenir la page web lire en powershell (exemple ici avec un WHOIS sur yahoo.com) qui est https://who.is/whois-ip/ip-address/206.190.36.45

Donc voici mon extrait de:

$url=Invoke-WebRequest https://who.is/whois-ip/ip-address/206.190.36.45

maintenant, si je fais :

$url.gettype()
IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    HtmlWebResponseObject                    Microsoft.PowerShell.Commands.WebResponseObject

Je vois cet objet possède plusieurs propriétés:

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;}

mais chaque fois que j'essaie des commandes comme

$url.ToString() | select-string "OrgName"

Powershell renvoie l'ensemble du code HTML car il interprète la chaîne de texte dans son ensemble. J'ai trouvé une solution de contournement de dumping de la sortie dans un fichier, et ensuite lire le fichier par l'intermédiaire d'un objet (de sorte que chaque ligne est un élément d'un tableau), mais j'ai des centaines d'adresses ip pour vérifier si ce n'est pas très optimal pour créer un fichier de tous les temps.

Je voudrais savoir comment je pourrais lire le contenu de la page web https://who.is/whois-ip/ip-address/206.190.36.45 et obtenir la ligne qui dit :
OrgName: Yahoo! Services De Diffusion, Inc.

et juste cette ligne uniquement.

Merci beaucoup pour votre aide! 🙂

  • Je ne pouvais pas le modifier à ma propre question, donc je suis ajoutant un commentaire ici, mais évidemment, $url,$web,$a sont en fait une seule et même variable.J'ai oublié de modifier mon projet correctement, désolé pour la confusion.
  • Changé les variables pour être le premier nom que vous avez utilisé.
InformationsquelleAutor Bluz | 2015-03-23