# encoding: ascii # api: powershell # title: WhoIs # description: Whois Lookup information returning an OBJECT!!! save as Whois.ps1 and run at your leisure # version: 0.1 # author: CrazyDave # license: CC0 # x-poshcode-id: 1515 # x-archived: 2017-05-13T16:18:01 # x-published: 2010-12-08T12:14:00 # # param([String] $DomainName = '192.168.0.1') $socket = New-Object System.Net.Sockets.Socket ([System.Net.Sockets.AddressFamily]::InterNetwork, [System.Net.Sockets.SocketType]::Stream, [System.Net.Sockets.ProtocolType]::Tcp) $Socket.Connect('whois.arin.net', 43) | out-null $bytes = [System.Text.Encoding]::ASCII.GetBytes($domainName + "`n") $Socket.Send($bytes) | out-null $bytes = [Array]::CreateInstance("byte", 2048) $Socket.Receive($bytes) | out-null $result = [System.Text.Encoding]::ASCII.GetString($bytes).Trim() $Socket.Close() $Data = New-Object Object $Data | Add-Member NoteProperty Raw ($result) $result -split "`n" | % { if (![String]::IsNullOrEmpty($_)) { $num = $_.IndexOf(":") if ($num -gt 0) { $itemName = $_.SubString(0,$num).Trim() $itemValue = $_.SubString($num+1).Trim() if (($Data | Get-Member $itemName)) { $Data.($itemName) += "|" + $itemValue } else { $Data | Add-Member NoteProperty ($itemName) ($itemValue) } } } } $Data