统计网络连接信息的批处理

运行环境:win10
使用方法:
1.保存为后缀bat
2.管理员运行
3.每隔五分钟统计一次:组织,次数,地址,端口
4.信息在org.txt里面
5.可以修改ping -n 300中300秒为需要的间隔和提示
6.没有去重
7.禁止修改和非法目的
8.重构了代码,修复了错误
9.发现两个call传参%会互相影响,有知道不影响怎么改的说下

@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
goto loop

:loop
set num=0
echo netstat开始!
netstat -aon>net.txt
for /f "tokens=*" %%i in (net.txt) do (
set row=%%i
if !num! gtr 1 (
for /f "tokens=1,2,3,4,5* delims= " %%a in ("!row!") do (
set flag=%%a
if "!flag!" equ "TCP" (
set fadd=%%c
for /f "tokens=1,2* delims=:" %%m in ("!fadd!") do (
set addr=%%m
set port=%%n
if not "!addr!"=="127.0.0.1" (
if not "!addr!"=="0.0.0.0" (
if not "!addr!"=="[" (
if not "!addr!"=="*" (
for /f "tokens=1,2* delims=." %%w in ("!addr!") do (
call :ipGPS !addr! !port! !num!
)
)
)
)
)
)
)
)
)
set /a num+=1
)
echo netstat结束!
echo 暂停5分钟!
ping -n 300 127.0>nul
echo 暂停5分钟结束!
goto loop

:ipGPS
set adr=%1
set port1=%2
set num=%3
echo Set objXML = CreateObject("MSXML2.ServerXMLHTTP")>ipFind.vbs
echo Set objFSO = CreateObject("Scripting.FileSystemObject")>>ipFind.vbs
echo objXML.open "GET","https://www.ip-address.org/lookup/ip-locator.php?track=!adr!",false>>ipFind.vbs
echo objXML.send()>>ipFind.vbs
echo Set objFile = objFSO.CreateTextFile("ipFind.txt",true)>>ipFind.vbs
echo objFile.close>>ipFind.vbs
echo Set objTextFile = objFSO.OpenTextFile ("ipFind.txt", 8, True)>>ipFind.vbs
echo objTextFile.WriteLine(objXML.responseText)>>ipFind.vbs
echo objTextFile.Close>>ipFind.vbs
start /wait wscript /b /t:600 ipFind.vbs
set rownumber=0
set num1=0
set num2=0
if exist ipFind.txt (
for /f "tokens=*" %%a in (ipFind.txt) do (
set /a rownumber+=1
if "!rownumber!"=="276" (
for /f "tokens=1,2* delims=:" %%m in ("%%a") do (
set group=%%n
set group=!group:~1,-6!
if exist org.txt (
for /f "usebackq tokens=1,2,3* delims==" %%x in (org.txt) do (
set /a num1+=1
set tmp1=%%x
set tmp2=%%y
set tmp3=%%z
if "!tmp3!"=="" (
if "!group!"=="" (
set num2=!num1!
)
) else (
if "!group!"=="!tmp1!" (
set num2=!num1!
)
)
)
)
if not "!num2!"=="0" (
call :makeOrg !adr! !port1! !num2!
) else (
echo !group!=1=!adr![!port1!]>>org.txt
)
)
)
)
)

:makeOrg
set addrs=%1
set ports=%2
set num3=%3
set num4=0
for /f "usebackq tokens=1,2,3* delims==" %%j in (org.txt) do (
set /a num4+=1
set temp1=%%j
set temp2=%%k
set temp3=%%l
if "!num4!"=="!num3!" (
if "!temp3!"=="" (
set times=!temp1:=!
set /a times+=1
if "!num4!"=="1" (
echo ^=!times!=!temp2!/!addrs![!ports!]>org.txt
) else (
echo ^=!times!=!temp2!/!addrs![!ports!]>>org.txt
)
) else (
set times=!temp2:=!
set /a times+=1
if "!num4!"=="1" (
echo !temp1!=!times!=!temp3!/!addrs![!ports!]>org.txt
) else (
echo !temp1!=!times!=!temp3!/!addrs![!ports!]>>org.txt
)
)
) else (
if "!temp3!"=="" (
set times=!temp1:=!
if "!num4!"=="1" (
echo ^=!times!=!temp2!>org.txt
) else (
echo ^=!times!=!temp2!>>org.txt
)
) else (
set times=!temp2:=!
if "!num4!"=="1" (
echo !temp1!=!times!=!temp3!>org.txt
) else (
echo !temp1!=!times!=!temp3!>>org.txt
)
)
)
)

(全文完)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

humors221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值