- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
大量搜索未找到批量解析 netstat -bano
的解决方案(与 -nab
、-bna
、- 相同的开关anb
、-nba
、nabo
等),因此来自给定网络连接的所有信息都在同一行上。
Netstat
的 -ban
开关用于:
-b = 显示可执行文件
-a = 显示所有连接和监听端口
-n = 以数字形式显示地址和端口。
-o = 显示每个连接的拥有进程 ID(即 PID)
但是 netstat 将文件名添加到下 行,使得处理输出非常困难。批量搜索没有找到任何答案。
我创建了一种通过查找 ](右括号)作为一行中的最后一个字符来解析它的方法。如果是 ],则基本上输出“组合”行,该行现在包含可执行文件。
我的代码作为答案发布,但做得很丑陋,因为它必须使用文件而不是变量来处理解析。
最佳答案
此脚本的先前版本缺少反斜杠。此外,脚本会删除输出文件。将文件创建为 %computername%--NETSTAT.txt 而不是 NETSTAT--%computername%.txt 可以解决问题。
@ECHO OFF
SetLocal
REM Method of finding last character-of-a-string-from-a-variable
REM http://stackoverflow.com/a/15662607/1569434
REM Get the script's path so all needed files can sit in the same folder
SET SCRIPTPATH=%~p0
CD %SCRIPTPATH%
REM Read and pass each line in file one at a time to sub 'FindEXE'
SET CONCATLINE=
SET HEADERROW=
SET /A LINECOUNT = 0
@echo LINECOUNT = %LINECOUNT%
del %SCRIPTPATH%\netstat*.txt /q 2>nul
netstat -bano>%SCRIPTPATH%\netstat0.txt
REM Copy all lines except those with "TIME_WAIT" into text file
FINDSTR /V /I /C:"TIME_WAIT" %SCRIPTPATH%\netstat0.txt>%SCRIPTPATH%\netstat1.txt
REM Delete first two lines, which are a header and a blank line
for /f "skip=2 delims=*" %%a in (%SCRIPTPATH%\netstat1.txt) do (echo %%a>>%SCRIPTPATH%\netstat2.txt)
REM Search for and process file based on matching text
REM This sub begins putting each netstat connection on one line
for /f "delims=*" %%A in (%SCRIPTPATH%\netstat2.txt) do call :FindTXT1 %%A
REM netstat3 will have all data from given connection on one line
SET /A LINECOUNT = 0
for /f "delims=*" %%A in (%SCRIPTPATH%\netstat3.txt) do call :FindTXT2 %%A
REM Keep only header and unique (i.e., those with "[::]") 'listening' connections
FINDSTR /I /C:"LISTENING" /C:"Local Address" %SCRIPTPATH%\netstat4.txt>%SCRIPTPATH%\netstat5.txt
FINDSTR /I /C:"[::]:" /C:"Local Address" %SCRIPTPATH%\netstat5.txt>%SCRIPTPATH%\netstat6.txt
MOVE /Y %SCRIPTPATH%\netstat6.txt %SCRIPTPATH%\%computername%--NETSTAT.txt
del %SCRIPTPATH%\netstat*.txt /q 2>nul
@echo off
echo done.
EndLocal
goto :EOF
:FindTXT1
REM We've got a line sent to us. Set variable to entire line using * (instead of %1)
SET CURRENTLINE=%*
SET /A LINECOUNT = %LINECOUNT% + 1
REM Add line feed after header row and return to main script
IF "%LINECOUNT%" == "1" (
SET HEADERROW=%CURRENTLINE%
@ECHO %CURRENTLINE%> %SCRIPTPATH%\netstat3.txt
goto :eof
)
REM Append a comma and CURRENTLINE to CONCATLINE. NOTE: Script expecting comma; don't use semi-colon
SET CONCATLINE=%CONCATLINE%,%CURRENTLINE%
REM When echo line, remove first char (comma, inserted above) using:
REM http://ss64.com/nt/syntax-substring.html
REM If last char is "]" then print, otherwise append
IF "%CURRENTLINE:~-1%"=="]" (
REM @echo right bracket=FOUND
@echo %CONCATLINE:~1%>>%SCRIPTPATH%\netstat3.txt
SET CONCATLINE=
) else (
REM @echo right bracket=NOT found
)
REM If line = "Can not obtain ownership information" then print, otherwise append
IF "%CURRENTLINE%"=="Can not obtain ownership information" (
REM @echo No Ownership=TRUE
@echo %CONCATLINE:~1%>>%SCRIPTPATH%\netstat3.txt
SET CONCATLINE=
)
goto :eof
:FindTXT2
REM We've got a line sent to us. Set variable to entire line using * (instead of %1)
SET CURRENTLINE=%*
SET /A LINECOUNT = %LINECOUNT% + 1
REM Add line feed after header row and return to main script
IF "%LINECOUNT%" == "1" (
SET HEADERROW=%CURRENTLINE%
@ECHO %CURRENTLINE%> %SCRIPTPATH%\netstat4.txt
goto :eof
)
REM If last char is "]" then search, otherwise append.
REM Without "DelayedExp...", variable sets to value from previous FOR loop
IF "%CURRENTLINE:~-1%"=="]" (
SetLocal ENABLEDELAYEDEXPANSION
REM IP6 EXEs result in 3 sets of [], so find and set var to last one, which is where EXE lives
FOR /f "tokens=1,2,3,4,5,6 delims=[]" %%a in ("%CURRENTLINE%") do (
SET BINNAME1=%%b
SET BINNAME2=%%f
IF "!BINNAME1!" == "::" (
REM @ECHO BINNAME1=!BINNAME1!>>%SCRIPTPATH%\netstat4.txt
SET BINNAME=!BINNAME2!
REM @echo %CURRENTLINE%;BINNAME=!BINNAME2!>>%SCRIPTPATH%\netstat4.txt
) else (
SET BINNAME=!BINNAME1!
REM @echo %CURRENTLINE%;BINNAME=!BINNAME1!>>%SCRIPTPATH%\netstat4.txt
)
@echo %CURRENTLINE%;BINNAME=!BINNAME!>>%SCRIPTPATH%\netstat4.txt
)
) else (
@echo %CURRENTLINE%>>%SCRIPTPATH%\netstat4.txt
SetLocal DISABLEDELAYEDEXPANSION
)
goto :eof
关于批量解析 NETSTAT -ban 开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26839728/
大量搜索未找到批量解析 netstat -bano 的解决方案(与 -nab、-bna、- 相同的开关anb、-nba、nabo 等),因此来自给定网络连接的所有信息都在同一行上。 Netstat 的
我正在做一个项目,我需要一组密码限制,其中包括一个不允许使用的密码文件(所有常见密码,如“abc”、“abcdef”、“12345”、“密码”等等)密码文件将包含大约 10000-15000 个单词。
Banned.h 多年来一直被吹捧为 C++ 的 SDL 工具,可以作为下载项 24817 从 Microsoft 下载。看起来 Microsoft 已经删除了该文件。来自在线资源的以下链接反复出现在
我经营着一个大型论坛,和其他人一样,我也有垃圾邮件发送者/机器人的问题。有大量已知垃圾邮件 IP 的列表,您可以下载并以 htaccess 形式使用,但我唯一关心的是文件大小。所以我想问题是多大才算是
我试图在我的 CSS(实际上是 SCSS)文件中使用 BEM 方法,但我一无所获。简单的重置/默认规则有什么问题。我阅读了文档并了解到,在另一个元素中重复使用相同的 CSS 组件时可能会出现问题,但我
我正在开发一个 symfony 5 项目和一个带有安全组件的身份验证系统,我在我的用户实体中添加了一个名为 is_banned 的字段,默认情况下它采用假值,我想放置一个函数来检查是否用户在登录之前是
我一直在尝试通过 curl 向 Varnish 服务器发送一个 BAN 请求以获取无效的缓存内容。该 url 包含一些供 Varnish 检查的正则表达式。我已成功发送此请求: 1. curl -X
我对使用套接字还很陌生,并且正在从事我的第一个项目;我实际上完全打算在没有任何库的情况下完成其中的第一个。我在 Windows 7 上,仅使用 WinAPI。 我在学校部分地研究它,在我的学校他们有一
所以今天,突然间,我的 Discord Selfbot 停止了工作。它已经运行了数周没有任何问题。它所做的只是监视来自其他 channel 的机器人警报,并在满足某些条件时通知我。 基本上问题是当我p
我想知道特定进程是否正在使用给定端口,即 netstat -ban。我遇到过使用 IPGlobalProperties 来获取事件连接列表,但这似乎不包括进程信息。 如果 C# 中有一些类可以让我以编
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我们在我们的一个站点上使用 htaccess 基本身份验证。我们的一位客户尝试访问该站点并多次登录失败。现在,当他们访问我们的网站时,他们只会收到“无法显示网页”错误。 我相信我以前遇到过这种情况,而
我正在用 discord.py 制作一个管理 discord 机器人,所以我意识到我需要添加一个命令来临时禁止某人一段时间,这个禁令可以按角色或通过将成员踢出 channel 然后禁止他,但我不知道该
我现在正在使用 Discord.py 开发 Discord 机器人。 我有一个主脚本,其中所有命令事件都会触发其他脚本的函数。一切工作正常,但后来我决定实现数据库并下载了 PostgreSQL 和 a
我正在使用 Discord.NET API 创建一个 Discord 机器人。一段时间以来,我一直在为我的机器人实现命令和模块,并且我正在尝试向我的机器人添加禁止命令。我发出了命令,所以你必须有一个名
我的 iOS 应用程序是用 swift 开发的。它包含一些 cocoa pod 和其他受信任的第三方框架。构建稳定并处于运行模式。现在,当安全官员对应用程序进行安全评估时,他们提出了上述问题。该应用程
当使用 urllib2 在 python(准确地说是 Entought Canopy)上做一个简单的请求时,服务器拒绝我访问: data = urllib.urlopen(an url i canno
我是一名优秀的程序员,十分优秀!