@@ -50,9 +50,11 @@ function Read-WhoisRecord {
5050 $WhoisRegex = ' ^(?!(?:%|>>>|-+|#|[*]))[^\S\n]*(?<PropName>.+?):(?:[\r\n]+)?(:?(?!([0-9]|[/]{2}))[^\S\r\n]*(?<PropValue>.+))?$'
5151
5252 Write-Verbose " Querying WHOIS Server: $Server "
53- # TCP Client for Whois
54- $Client = New-Object System.Net.Sockets.TcpClient($Server , 43 )
53+
5554 try {
55+ # TCP Client for Whois
56+ $Client = New-Object System.Net.Sockets.TcpClient($Server , 43 )
57+
5658 # Open TCP connection and send query
5759 $Stream = $Client.GetStream ()
5860 $ReferralServers = [System.Collections.Generic.List [string ]]::new()
@@ -136,16 +138,18 @@ function Read-WhoisRecord {
136138 $Results = $LastResult
137139 }
138140 }
139- }
140-
141- else {
141+ } else {
142142 if ($Results._Raw -Match ' (No match|Not Found|No Data)' ) {
143143 $first , $newquery = ($Query -split ' \.' )
144144 if (($newquery | Measure-Object ).Count -gt 1 ) {
145145 $Query = $newquery -join ' .'
146- $Results = Read-WhoisRecord - Query $Query - Server $Server - Port $Port
147- foreach ($s in $Results._ReferralServers ) {
148- $ReferralServers.Add ($s ) | Out-Null
146+ try {
147+ $Results = Read-WhoisRecord - Query $Query - Server $Server - Port $Port
148+ foreach ($s in $Results._ReferralServers ) {
149+ $ReferralServers.Add ($s ) | Out-Null
150+ }
151+ } catch {
152+ $Results = $LastResult
149153 }
150154 }
151155 }
@@ -162,10 +166,10 @@ function Read-WhoisRecord {
162166 $Stream.Dispose ()
163167 }
164168 }
165-
166- # Collect referral server list
167- $Results._ReferralServers = $ReferralServers
168-
169+ if ( $ReferralServers ) {
170+ # Collect referral server list
171+ $Results._ReferralServers = $ReferralServers
172+ }
169173 # Convert to json and back to preserve object order
170174 $WhoisResults = $Results | ConvertTo-Json | ConvertFrom-Json
171175
0 commit comments