Использование списка для фильтрации частных IP-адресов из DestinationPrefix в таблице маршрутов? - PullRequest
0 голосов
/ 06 июня 2019

Попытка отфильтровать некоторые частные IP-адреса из таблицы маршрутизации, чтобы получить остаток от Get-NetRoute.

Попытка использовать методы регулярного выражения массива и PowerShell (не особо заинтересованные в методах регулярного выражения) из некоторых примеров спискачерез гугл, но хотя ошибки не было, не получилось.Приведенная ниже строка кода - это то, что я сейчас использую, и она работает именно так, как я и ожидал.

Get-NetRoute |
    ? AddressFamily -eq 'IPv4' |
    ? DestinationPrefix -notlike '0.0.*' |
    ? DestinationPrefix -notlike '10.*' |
    ? DestinationPrefix -notlike '128.*' |
    ? DestinationPrefix -notlike '255.*' |
    ? DestinationPrefix -notlike '127.*' |
    ? DestinationPrefix -notlike '224.0.*' |
    ? NextHop -notlike '0.0.*' |
    ? RouteMetric -eq '0'

Хотя эта строка кода работает, она действительно длинная, и я хотел бы ее сократить.Есть ли способ использовать какой-то список вместо того, чтобы помещать все в одну строку с несколькими ? DestinationPrefix -notlike с, чтобы он выглядел примерно так ? DestinationPrefix -notlike <list here> вместо отдельных ? DestinationPrefix для каждого элемента IP для фильтрации?

1 Ответ

1 голос
/ 06 июня 2019

Это немного укоротит:

Get-NetRoute | ? {
    $_.AddressFamily -eq 'IPv4' -and
    $_.DestinationPrefix -notmatch '^(0\.0|10|128|255|127|224\.0)\.' -and
    $_.NextHop -notlike '0.0.*' -and
    $_.RouteMetric -eq '0'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...