【发布时间】:2018-06-08 15:50:29
【问题描述】:
我有一个包含很多 IP 地址的文本文件,每个不同的 IP 可能在文本文件中多次出现,所以我正在尝试编写(或获得帮助编写)一个 Powershell 脚本,该脚本将执行以下操作: 1 - 打开文本文件,计算每个 IP 被列出的次数,然后 2 - 如果总数大于 20,则将该 IP 附加到另一个名为 Banned.txt 的文件中
此脚本运行后,我会在几天后手动删除文件(该文件是由另一个程序创建的),我会再次使用此脚本。
这是我最好的尝试:
$BadIP = Get-Content -Path G:\ips.txt
foreach ($ip in $BadIP) {
$matches = Select-String -InputObject $BadIP -Pattern $ip -AllMatches
$a = $matches.Matches.Count
$ip + " " + $a
}
上面的代码有效,但一次又一次地显示相同的 ip。结果如下所示:
197.3.11.26 1 188.128.119.172 1 64.71.18.150 1 212.92.107.105 51 95.213.162.132 1 212.92.107.105 51 212.92.107.105 51 212.92.123.202 48 64.74.185.234 1 212.92.107.105 51 212.92.107.105 51 212.92.115.227 45 212.92.123.202 48 212.92.107.105 51 212.92.115.227 45 212.92.123.202 48如您所见,212.92.107.105 显示了很多次。
更新:工作代码:
$BadIP = Get-Content -Path G:\ips.txt
foreach ($ip in $BadIP) {
$matches = Select-String -InputObject $BadIP -Pattern $ip -AllMatches
$a = $matches.Matches.Count
if ($a -gt 10) {
Add-Content -Path G:\NewBanned.txt -Value $ip -Force
}
}
$B = Get-Content -Path G:\NewBanned.txt | sort | Get-Unique
Set-Content -Path G:\C.txt -Value $B -Force
197.3.11.26
188.128.119.172
64.71.18.150
212.92.107.105
95.213.162.132
212.92.107.105
212.92.107.105
212.92.123.202
64.74.185.234
212.92.107.105
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
79.175.133.67
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
186.202.182.154
212.92.115.227
23.97.190.194
212.92.123.202
116.247.79.114
212.92.107.125
212.92.107.105
95.154.89.97
212.92.115.227
212.92.123.202
212.92.107.105
37.61.220.2
212.92.115.227
216.210.86.226
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
103.196.30.114
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
72.43.207.8
212.92.123.202
52.176.111.87
51.15.147.173
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
51.15.147.173
212.92.115.227
212.92.123.202
212.92.107.105
80.241.45.18
51.15.147.173
212.92.115.227
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
51.15.147.173
212.92.123.202
212.92.115.227
212.92.107.105
51.15.147.173
212.92.123.202
212.92.107.105
212.92.115.227
121.122.140.41
61.222.127.100
187.216.131.254
138.201.35.26
212.92.123.202
212.92.107.105
212.92.115.227
51.15.147.173
162.250.124.186
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
51.15.147.173
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
51.15.147.173
212.92.115.227
212.92.123.202
198.71.53.228
212.92.107.105
212.92.115.227
212.92.123.202
51.15.147.173
212.92.107.105
212.92.115.227
212.92.123.202
121.122.140.41
212.92.107.105
51.15.147.173
212.92.115.227
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
51.15.147.173
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
51.15.147.173
212.92.123.202
212.92.115.227
138.201.35.26
212.92.107.105
212.92.123.202
51.15.147.173
124.97.39.218
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
51.15.147.173
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.118.13.124
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
83.37.113.40
212.92.115.227
212.92.107.105
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
78.110.10.245
212.92.107.105
212.92.115.227
212.92.123.202
38.110.28.23
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
212.92.115.227
212.92.123.202
212.92.107.105
212.92.123.242
212.92.123.202
212.92.115.227
212.92.107.105
212.92.123.202
212.92.115.227
212.92.107.105
212.92.115.227
212.92.107.105
212.92.123.202
88.250.238.17
212.92.115.227
212.92.107.105
88.250.238.17
212.92.123.202
212.92.115.227
212.92.107.105
208.98.255.113
124.97.39.218
177.84.35.46
1.174.101.155
【问题讨论】:
-
你应该放一个包含IP地址的文件样本,这样人们就可以看到它是如何格式化的。
-
Dale- 好点.. 不知道如何附加文件
-
这需要时间。您可以为此给予奖励,或者至少尝试写一些东西。人们会帮助修复你的代码:)
-
Dale- 是的,我尝试了一些不同的方法。我已经更新了我的帖子以包含我的最佳尝试。
标签: powershell-4.0