Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Csv 如何在多个文本文件中搜索IP地址,并使用powershell将找到的IP地址输出到文本文件中?_Csv_Powershell_Ipv4 - Fatal编程技术网

Csv 如何在多个文本文件中搜索IP地址,并使用powershell将找到的IP地址输出到文本文件中?

Csv 如何在多个文本文件中搜索IP地址,并使用powershell将找到的IP地址输出到文本文件中?,csv,powershell,ipv4,Csv,Powershell,Ipv4,我用这个撞到了砖墙。我的任务是搜索Windows服务器列表上的IIS日志,并在日志文件中创建连接到服务器的所有IP地址的报告。如果我使用Linux,那就很容易了。我可以用grep和cut在几分钟内完成。但是,这些是内部服务器,我无法从bashshell访问它们。我需要创建一个脚本,并使用powershell在每个本地服务器上运行它 我所能做的最接近的事情是首先运行一个脚本,搜索C:\inetpub\logs\LogFiles\中的所有.log文件,查找任何看起来像IPV4地址的内容,并将其转储到

我用这个撞到了砖墙。我的任务是搜索Windows服务器列表上的IIS日志,并在日志文件中创建连接到服务器的所有IP地址的报告。如果我使用Linux,那就很容易了。我可以用grep和cut在几分钟内完成。但是,这些是内部服务器,我无法从bashshell访问它们。我需要创建一个脚本,并使用powershell在每个本地服务器上运行它

我所能做的最接近的事情是首先运行一个脚本,搜索C:\inetpub\logs\LogFiles\中的所有.log文件,查找任何看起来像IPV4地址的内容,并将其转储到CSV文件中

get-childItem C:\inetpub\logs\logfiles\ -include *.log -rec | select-String -pattern ‘\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b’ | select-Object -Propery 'Line' | export-CSV C:\temp\output.txt -notypeinformation
这将创建一个csv文件,其中包含每个日志行,其中包含一个IP地址。然后,我对该文件运行第二个脚本,查找IP地址并将其输出到另一个文件(诚然是从在线某处“借用”的)

我遇到的问题是,一旦找到IP地址,它就会跳到下一行。日志文件的每一行都以一个时间戳和服务器本身的IP地址开始,因此我最终得到的是大约130000行192.168.1.X,这对我来说完全没有用

如果我使用Linux,那就很容易了。我可以用grep和cut在几分钟内完成。但是,这些是内部服务器,我无法从bashshell访问它们

在Windows上,有效查询IIS日志文件的最可行方法是使用

LogParser支持类似SQL的查询,以获取日志中所有客户端IP地址的列表:

logparser "SELECT DISTINCT c-ip INTO C:\clientips.txt FROM C:\inetpub\logs\logfiles\*.log"
如果我使用Linux,那就很容易了。我可以用grep和cut在几分钟内完成。但是,这些是内部服务器,我无法从bashshell访问它们

在Windows上,有效查询IIS日志文件的最可行方法是使用

LogParser支持类似SQL的查询,以获取日志中所有客户端IP地址的列表:

logparser "SELECT DISTINCT c-ip INTO C:\clientips.txt FROM C:\inetpub\logs\logfiles\*.log"

对于分析IIS日志,我强烈建议使用。 一个易于使用的命令行工具,使用SQL方言从数据源提取信息

您可以使用下面的代码使IP到达您的站点。只需选择日志文件名,或者如果要分析多个日志文件,只需使用通配符,如“c:/logs/ex*”


如果你不是SQL的超级粉丝,有人写了50多个有用的例子

对于分析IIS日志,我强烈建议使用。 一个易于使用的命令行工具,使用SQL方言从数据源提取信息

您可以使用下面的代码使IP到达您的站点。只需选择日志文件名,或者如果要分析多个日志文件,只需使用通配符,如“c:/logs/ex*”

如果你不是SQL的超级粉丝,有人写了50多个有用的例子

logparser "select c-ip, count(c-ip) as requestcount from [LogFileName] group by c-ip order by count(c-ip) desc"