PowerShell统计本地的网络连接(CMD吐数据互访)

简介:

需求:想把netstat-an吐出来的数据统计一下,看看本地连外地有多少个,外地连本地有多少个。协议分类什么的。

注意:因为netstat是cmd的命令,尽管在PowerShell下可以运行这个命令,但是吐出来的数据是没办法在加工的,它不是PowerShell原生命令。所以解决方法是把数据吐到一个csv文件中,然后针对CSV进行加工,最后得到需要的统计信息。

首先来一个中文版的,经过测试,需要PowerShell3.0以上,也就是Windows Server 2012以上的版本(windows8以上也可以)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#Powered By kukisama   http://jiushu.blog.51cto.com/
netstat -an  |Out -File  -Encoding utf8 D:\3456.csv
$files  = ( Get-Childitem  d:\3456.csv).pspath
$content  get-content  $files
clear-content  $files
add-Content  $files  -Value  "协议,本地IP地址,端口,对端IP地址,对端端口,状态"
foreach  ( $line  in  $content  -ne  "活动连接"  -ne  "  协议  本地地址          外部地址        状态" )
    {
    $liner  $line .Replace( "[::1]" , "本地" );
    $line  $liner
    $liner  $line .Replace( "[::]" , "本地" );
    $line  $liner
    $line  $liner  -replace ( "\s{1,}"  , "," )
    $liner  $line
    $line  $liner  -replace ( ":{1,}"  , " " )
    $liner  $line
    $liner  $line .Replace( ",TCP" , "TCP" )
    $line  $liner
    $liner  $line .Replace( ",UDP" , "UDP" )
    $line  $liner
    $line  $liner  -replace ( "\s{1,}"  , "," )
    $liner  $line
    $liner  $line .Replace( "127.0.0.1" , "本地" )
    $line  $liner
    $liner  $line .Replace( "0.0.0.0" , "本地" )
    $line  $liner
    $liner  $line .Replace( "LISTENING" , "监听" )
    $line  $liner
    $liner  $line .Replace( "ESTABLISHED" , "等待" )
    $line  $liner
    $liner  $line .Replace( "TIME_WAIT" , "已建立连接" )
    $line  $liner
    $liner  $line .Replace( "CLOSE_WAIT" , "关闭等待" )
    $line  $liner
    $liner  $line .Replace( "SYN_SENT" , "同步发送" )
    add-Content  $files  -Value  $liner  -Encoding  Default
      
 
 
$bb  Import-Csv  -Path d:/3456.csv -Encoding  Default
echo  "====================================="
echo  "以下为协议计数"
$bb Group-Object  –Property:协议 |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为您本地IP连接外端地址的统计数据"
$bb Group-Object  –Property:本地IP地址 |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为外端地址连接您本地IP的统计数据"
$bb Group-Object  –Property:对端IP地址 |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为状态计数"
$bb Group-Object  –Property:状态 |select  Name,Count |sort  -Property count

再来一个英文版的,因为在PowerShell2.0 也就是Windows Server 2008 R2中,是没有-Encoding Default参数的,所以要删了它,改成全英文的描述和说明。所以用中文装逼是失败的了。因此建议大家也尽量升级PowerShell到4.0(Windows Server 2008 R2是可以升级PowerShell的)

这里要说明一下的是,该文档只适合中文和英文系统,其他语种你需要修改第7行,增加更多-ne的属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#Powered By kukisama   http://jiushu.blog.51cto.com/
netstat -an  |Out -File   D:\3456.csv
$files  = ( Get-Childitem  d:\3456.csv).pspath
$content  get-content  $files
clear-content  $files
add-Content  $files  -Value  "proto,localAddress,duankou,duiduanip,duiduanduanou,zhuangtai"
foreach  ( $line  in  $content  -ne  "active connections"  -ne  "  proto  local address          foreign address         state"  -ne  "活动连接"  -ne  "  协议  本地地址          外部地址        状态" )
    {
    $liner  $line .Replace( "[::1]" , "local" );
    $line  $liner
    $liner  $line .Replace( "[::]" , "local" );
    $line  $liner
    $line  $liner  -replace ( "\s{1,}"  , "," )
    $liner  $line
    $line  $liner  -replace ( ":{1,}"  , " " )
    $liner  $line
    $liner  $line .Replace( ",TCP" , "TCP" )
    $line  $liner
    $liner  $line .Replace( ",UDP" , "UDP" )
    $line  $liner
    $line  $liner  -replace ( "\s{1,}"  , "," )
    $liner  $line
    $liner  $line .Replace( "127.0.0.1" , "local" )
    $line  $liner
    $liner  $line .Replace( "0.0.0.0" , "local" )
    $line  $liner
   <# $liner = $line.Replace("LISTENING","监听")
    $line = $liner
    $liner = $line.Replace("ESTABLISHED","等待")
    $line = $liner
    $liner = $line.Replace("TIME_WAIT","已建立连接")
    $line = $liner
    $liner = $line.Replace("CLOSE_WAIT","关闭等待")
    $line = $liner
    $liner = $line.Replace("SYN_SENT","同步发送")#>
    add-Content  $files  -Value  $liner 
      
 
$files
$bb  Import-Csv  -Path d:\3456.csv 
echo  "====================================="
echo  "以下为协议计数"
$bb Group-Object  –Property:proto |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为您本地IP连接外端地址的统计数据"
$bb Group-Object  –Property:localAddress |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为外端地址连接您本地IP的统计数据"
$bb Group-Object  –Property:duiduanip |select  Name,Count |sort  -Property count
echo  "====================================="
echo  "以下为状态计数"
$bb Group-Object  –Property:zhuangtai |select  Name,Count |sort  -Property count


输出结果如下

wKiom1WD3vfz5htzAAFCKGwfCSs330.jpg



本文转自 九叔 51CTO博客,原文链接:http://blog.51cto.com/jiushu/1663669,如需转载请自行联系原作者

相关文章
|
1月前
|
监控 安全 网络安全
云计算与网络安全:保护数据的关键策略
【9月更文挑战第34天】在数字化时代,云计算已成为企业和个人存储、处理数据的优选方式。然而,随着云服务的普及,网络安全问题也日益凸显。本文将探讨云计算环境中的网络安全挑战,并提供一系列策略来加强信息安全。从基础的数据加密到复杂的访问控制机制,我们将一探究竟如何在享受云服务便利的同时,确保数据的安全性和隐私性不被侵犯。
64 10
|
2月前
|
存储 安全 网络安全
云计算与网络安全:守护数据,构筑未来
在当今的信息化时代,云计算已成为推动技术革新的重要力量。然而,随之而来的网络安全问题也日益凸显。本文从云服务、网络安全和信息安全等技术领域展开,探讨了云计算在为生活带来便捷的同时,如何通过技术创新和策略实施来确保网络环境的安全性和数据的保密性。
|
8天前
|
缓存 弹性计算 运维
网络管理利器:掌握常用的CMD命令
本文介绍了常用的网络CMD命令及其用法,包括`ping`、`ipconfig`、`tracert`、`nslookup`、`netstat`、`route`、`telnet`、`ftp`、`netsh`、`arp`、`nbtstat`、`hostname`、`systeminfo`、`ipconfig /flushdns`和`tasklist`。这些命令在日常的网络管理和故障排查中非常实用,帮助你轻松进行网络诊断、配置和监控。
|
12天前
|
存储 安全 网络安全
云计算与网络安全:保护数据的新策略
【10月更文挑战第28天】随着云计算的广泛应用,网络安全问题日益突出。本文将深入探讨云计算环境下的网络安全挑战,并提出有效的安全策略和措施。我们将分析云服务中的安全风险,探讨如何通过技术和管理措施来提升信息安全水平,包括加密技术、访问控制、安全审计等。此外,文章还将分享一些实用的代码示例,帮助读者更好地理解和应用这些安全策略。
|
17天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
19天前
|
存储 安全 网络安全
云计算与网络安全:如何保护您的数据
【10月更文挑战第21天】在这篇文章中,我们将探讨云计算和网络安全的关系。随着云计算的普及,网络安全问题日益突出。我们将介绍云服务的基本概念,以及如何通过网络安全措施来保护您的数据。最后,我们将提供一些代码示例,帮助您更好地理解这些概念。
|
22天前
|
存储 关系型数据库 Apache
PowerShell 将文本文件数据读取到数组中
文本数据更常见的存储格式之一是采用文件形式,其中单独的行被视为不同的数据元素。
27 1
|
1月前
|
SQL 安全 测试技术
网络安全与信息安全:保护数据的艺术
【9月更文挑战第36天】在数字化时代,网络安全和信息安全已成为维护个人隐私和企业资产的基石。本文深入探讨了网络安全漏洞、加密技术以及安全意识的重要性,旨在为读者提供一份知识宝典,帮助他们在网络世界中航行而不触礁。我们将从网络安全的基本概念出发,逐步深入到复杂的加密算法,最后强调培养安全意识的必要性。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你打开一扇了解和实践网络安全的大门。
37 2
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习与神经网络:探索复杂数据的表示
【9月更文挑战第26天】深度学习作为人工智能领域的明珠,通过神经网络自动从大数据中提取高级特征,实现分类、回归等任务。本文介绍深度学习的基础、张量表示、非线性变换、反向传播及梯度下降算法,并探讨其在计算机视觉、自然语言处理等领域的应用与挑战。未来,深度学习将更加智能化,揭示数据背后的奥秘。
|
2月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用

热门文章

最新文章