Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Add or remove?
- $AddRoutes = $True
- # Which interface to screw with routes on?
- $InterfaceName = "Ethernet"
- # Where is JSON?
- $PrefixURI = "https://ip-ranges.amazonaws.com/ip-ranges.json"
- # What region do we want to keep?
- $RegionToKeep = "us-west-1"
- # Download and convert to PSObject
- $PrefixJSON = $(Invoke-WebRequest $PrefixURI | ConvertFrom-JSON).prefixes | Sort-Object -Property region
- # Filter out everything we want to keep
- $PrefixesToBlock = $PrefixJSON | Select ip_prefix,region -Unique | Where-Object {$_.region -NotLike $RegionToKeep}
- # get ifIndex of adapter
- $InterfaceIndex = $(Get-NetAdapter -Name $InterfaceName).ifIndex
- if ($AddRoutes) {
- # add blackhole routes
- foreach ($Prefix in $PrefixesToBlock) {
- New-NetRoute -DestinationPrefix $Prefix.ip_prefix -NextHop 127.0.0.1 -InterfaceIndex $InterfaceIndex
- }
- } else {
- # remove blackhole routes
- foreach ($Prefix in $PrefixesToBlock) {
- Remove-NetRoute -DestinationPrefix $Prefix.ip_prefix -NextHop 127.0.0.1 -InterfaceIndex $InterfaceIndex
- }
- }
- # show routes
- Get-NetRoute -InterfaceIndex $InterfaceIndex -AddressFamily IPv4 | Out-GridView
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement