有没有办法在Powershell中循环浏览publicsuffix列表?
我正在尝试测试一个web过滤解决方案,因此我有一个powershell,它循环遍历URL列表并返回webresponse。问题是,您经常访问CDN或其他可能未经授权的403或404未找到的站点,您需要找到根域 根据我的发现,唯一合乎逻辑的解决方案是对照publicsuffix列表交叉引用它。据我所见,它唯一不能很好使用的语言是PowerShell。我想知道是否有人遇到过这个问题或有解决方案。您可以使用任何目录 $workingdirectory=C:\ 下载公共后缀列表 调用WebRequest-Urihttps://publicsuffix.org/list/public_suffix_list.dat -OutFile$workingdirectory\public\u后缀\u list.dat 获取文件的内容,删除空白,删除所有 注释,并将其输出到文件 gc$workingdirectory\public\u后缀\u list.dat| ? {$\.Trim-ne}| 选择String-Pattern//-NotMatch| 设置内容$workingdirectory\public\u suffix\u list.dat 虽然可行,但有一种更简洁、更快的替代方案: Invoke RestMethod$url将指定url处的文本文件作为单个字符串返回 -split`n将字符串拆分为行数组 -匹配“^[^/\s]”匹配那些以“^字符开头的行,该字符来自[…]中包含的集合,它不是“^文字字符”,也不是空格字符,从而有效地过滤掉注释/假设的非数据行 如上所述,将仅数据行数组保存到文件中,如您的解决方案中所示有没有办法在Powershell中循环浏览publicsuffix列表?,powershell,public-suffix-list,Powershell,Public Suffix List,我正在尝试测试一个web过滤解决方案,因此我有一个powershell,它循环遍历URL列表并返回webresponse。问题是,您经常访问CDN或其他可能未经授权的403或404未找到的站点,您需要找到根域 根据我的发现,唯一合乎逻辑的解决方案是对照publicsuffix列表交叉引用它。据我所见,它唯一不能很好使用的语言是PowerShell。我想知道是否有人遇到过这个问题或有解决方案。您可以使用任何目录 $workingdirectory=C:\ 下载公共后缀列表 调用WebRequest
请注意,确定给定URL是否具有公共后缀涉及的不仅仅是针对数据行的后缀匹配,因为后者具有通配符标签*,并且涉及以!-请参见该列表似乎是git存储库中的纯文本文件。例如,通过git获取文件并删除所有行注释以及空行。问题解决了。
$url = 'https://publicsuffix.org/list/public_suffix_list.dat'
(Invoke-RestMethod $url) -split "`n" -match '^[^/\s]' |
Set-Content .\public_suffix_list.dat