|
|
|
|
|
function convert-idn($domain,$coding) { |
|
$idn = new-object System.Globalization.IdnMapping |
|
if ($coding -eq "ascii") { |
|
$idn.GetAscii($domain) |
|
} |
|
elseif ($coding -eq "unicode") { |
|
$idn.GetUnicode($domain) |
|
} |
|
} |
|
|
|
function get-whoisvalues { |
|
param( |
|
[CmdLetBinding()] |
|
[parameter(mandatory=$true)] |
|
[validatenotnullorempty()] |
|
$whoisinput, |
|
$formattedName |
|
) |
|
begin { |
|
remove-variable properties -ErrorAction SilentlyContinue |
|
} |
|
process { |
|
$properties = @{site=$formattedName} |
|
#$properties = @{} |
|
Write-Verbose -Message "Starting verbose..." |
|
$newNsLoop = 1 |
|
write-verbose -Message "Input is: $($input.count) lines" |
|
write-verbose -Message "Input: $($input)" |
|
write-verbose -Message "Input: $($input.gettype())" |
|
foreach ($line in $whoisinput) { |
|
if ($line -like "state:*") { |
|
$properties.state = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line -like "domain:*" -or $line -like "Domain Name:*") { |
|
$properties.domain = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line -like "holder:*" -or $line -like "Registrant Organization:*") { |
|
$properties.holder = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ( $line -like "created:*" -or $line -like "Creation Date:*") { |
|
$properties.created = $line.split(":")[1].trimstart(" ") |
|
} |
|
elseif ($line -like "modified:*" -or $line -like "Updated Date:*") { |
|
$properties.modified = $line.split(":")[1].trimstart(" ") |
|
} |
|
elseif ($line -like "expires:*" -or $line -like "Registrar Registration Expiration Date:*" -or $line -like "Registry Expiry Date:*") { |
|
$properties.expires = $line.split(":")[1].trimstart(" ") |
|
} |
|
elseif ($line -like "nserver:*" -or $line -like "Name Server:*") { |
|
if ($newNsLoop -eq 1) { |
|
$properties.nsserver1 = $line.split(":")[-1].trimstart(" ") |
|
$newNsLoop++ |
|
} |
|
elseif ($newNsLoop -eq 2) { |
|
$properties.nsserver2 = $line.split(":")[-1].trimstart(" ") |
|
$newNsLoop++ |
|
} |
|
elseif ($newNsLoop -eq 3) { |
|
$properties.nnsserver3 = $line.split(":")[-1].trimstart(" ") |
|
} |
|
else { write-output "Couldnt match ns"} |
|
} |
|
elseif ($line -like "status:*" -or $line -like "Domain Status:") { |
|
$properties.status = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line -like "transferred:*") { |
|
$properties.transferred = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line.ToLower() -like "dnssec:*") { |
|
$properties.dnssec = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line.ToLower() -like "registrar whois server:*") { |
|
$properties.whois = $line.split(":")[-1].trimstart(" ") |
|
} |
|
elseif ($line.ToLower() -like "registrar:*") { |
|
$properties.registrar = $line.split(":")[-1].trimstart(" ") |
|
} |
|
|
|
}#end foreach |
|
#$properties.site=$formattedName |
|
Write-Verbose "Properties has $($properties.count)" |
|
$tempObject = new-object psobject -Property $properties |
|
return $tempObject |
|
} |
|
} |
|
|
|
function ping-ripe { |
|
param( |
|
$baseUrl = 'http://rest.db.ripe.net/search.json?query-string=', |
|
$ip = '81.170.175.179' |
|
) |
|
$url = "$($baseUrl)$($ip)" |
|
$result = Invoke-RestMethod -uri $url |
|
$values = $result.objects.object.attributes |select @{name='Attribute';expression={$_.attribute|where-object {$_.name -like 'descr'}}} |
|
|
|
$outputObject = $attributeObject = @() |
|
foreach ($value in $values) { |
|
$tempObject = new-object psobject -Property @{value=$value.attribute.value} |
|
$attributeObject += $tempObject |
|
} |
|
return $outputObject += new-object psobject -Property @{input=$ip;value=$($attributeObject.value -join ";")} |
|
} |
|
|
|
function ping-arin { |
|
param( |
|
$baseUrl = "http://whois.arin.net/rest/ip/", |
|
$ip |
|
) |
|
$url = "$($baseUrl)$ip" |
|
$headers = @{"Accept"="application/json"} |
|
$result = Invoke-RestMethod -uri $url -Headers $headers |
|
|
|
$outputObject = new-object psobject -Property @{input=$ip;value=$result.net.orgRef.'@name'} |
|
return $outputObject |
|
} |