Получение доменного имени из URL с использованием powershell? - PullRequest
1 голос
/ 03 марта 2020

В основном у меня есть огромный CSV фишинговых ссылок, и я пытаюсь обрезать https://www. и что угодно после .com .edu et c. так что в основном идеальный вывод сценария powershell - это длинный список URL-адресов, каждый из которых выглядит примерно как google.com или microsoft.com. Пока я импортировал csv, но все, что я пробовал, либо не работает, либо оставляет www on начало. Любая помощь будет отличной. CSV, который я использую это: http://data.phishtank.com/data/online-valid.csv

$urls = Import-Csv -Path .\online-valid.csv | select -ExpandProperty "url"

Ответы [ 2 ]

1 голос
/ 03 марта 2020

A краткая и быстрая альтернатива - Полезный ответ Дрю , основанный на приведении строк URL непосредственно к массиву из [uri] (System.Uri) экземпляров, а затем префикс усечения www., если имеется, из их свойства .Host (имя сервера):

([uri[]] (Import-Csv .\online-valid.csv).url).Host -replace '^www\.'

Обратите внимание, что оператор -replace основан на регулярных выражениях, а регулярное выражение ^www\. гарантирует, что www заменяется только в начале (^) строки и только если за ним следует литерал . (\.), в этом случае этот префикс удаляется (заменяется подразумеваемой пустой строкой); если такого префикса нет, входная строка пропускается как есть.

Решение для удобства и скорости считывает сразу весь файл CSV в память, а выводит только обрезанные имена серверов , как массив строк.

1 голос
/ 03 марта 2020

Ниже вы получите CSV и сделаете магию c для вас. Поиграйте с [Uri], это очень полезно при разборе веб-ссылок.

$csv = import-csv C:\temp\verified_online.csv

Foreach($Site in $csv) {
    $site | Add-Member -MemberType NoteProperty -Name "Host" -Value $(([Uri]$Site.url).Host -replace '^www\.')
}

$csv | Export-Csv C:\temp\verified_online2.csv -NoTypeInformation

Настраивается в соответствии с рекомендацией Mklement0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...