Public/Submit-AbuseIPDBReport.ps1
function Submit-AbuseIPDBReport { [CmdletBinding()] param ( [Parameter(Mandatory)] [string] $IPAddress, [Parameter(Mandatory)] [ValidateSet( "DNSCompromise", "DNSPoisoning", "FraudOrders", "DDoSAttack", "FTPBrute-Force", "PingOfDeath", "Phishing", "FraudVoIP", "OpenProxy", "WebSpam", "EmailSpam", "BlogSpam", "VPNIP", "PortScan", "Hacking", "SQLInjection", "Spoofing", "Brute-Force", "BadWebBot", "ExploitedHost", "WebAppAttack", "SSH", "IoTTargeted" )] [string[]] $Category, [Parameter()] [string] $Comment ) begin { $categoryMap = @{ "DNSCompromise" = 1 "DNSPoisoning" = 2 "FraudOrders" = 3 "DDoSAttack" = 4 "FTPBrute-Force" = 5 "PingOfDeath" = 6 "Phishing" = 7 "FraudVoIP" = 8 "OpenProxy" = 9 "WebSpam" = 10 "EmailSpam" = 11 "BlogSpam" = 12 "VPNIP" = 13 "PortScan" = 14 "Hacking" = 15 "SQLInjection" = 16 "Spoofing" = 17 "Brute-Force" = 18 "BadWebBot" = 19 "ExploitedHost" = 20 "WebAppAttack" = 21 "SSH" = 22 "IoTTargeted" = 23 } $categories = @() foreach ($entry in $Category) { $categories += $categoryMap[$entry] } } process { $body = @{ ip = $IPAddress categories = ($categories -join ",") } if (-not ([string]::IsNullOrEmpty($Comment))) { $body.Add("comment", $Comment) } $result = Invoke-AbuseIPDBRequest -Path "/report" -Body $body -ErrorAction Stop return $result } end { } } |