如何在PowerShell腳本中使用netstat監(jiān)控網(wǎng)絡(luò)連接情況-創(chuàng)新互聯(lián)

如何在PowerShell腳本中使用netstat監(jiān)控網(wǎng)絡(luò)連接情況?相信很多新手小白對此束手無策,通過這篇文章的總結(jié),希望你能找到解決的方法。

創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括平羅網(wǎng)站建設(shè)、平羅網(wǎng)站制作、平羅網(wǎng)頁制作以及平羅網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,平羅網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到平羅省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

需求:想把netstat -na吐出來的數(shù)據(jù)統(tǒng)計(jì)一下,看看本地有沒有連接外網(wǎng)。因部分服務(wù)器不能連接外網(wǎng)。如果有連接外網(wǎng),需要報(bào)警。
注意:因?yàn)閚etstat是cmd的命令,盡管在PowerShell下可以運(yùn)行這個(gè)命令,但是吐出來的數(shù)據(jù)是沒辦法再次加工的,它不是PowerShell原生命令。
原生命令比如Get-Command,可以通過以下腳本直接得到Get-Command中的所有的Name值,但是netstat不行。
Get-Command | Export-Csv -Path c:\1\2.csv
Import-CSV -Path c:\1\2.csv  | Select-Object Name
所以解決方法是把數(shù)據(jù)吐到一個(gè)CSV文件中,然后針對CSV進(jìn)行加工,最后得到需要的統(tǒng)計(jì)信息。
經(jīng)過測試,需要PowerShell3.0以上,也就是Windows Server 2012以上的版本(windows8以上也可以)。
腳本:
netstat -an |Out-File  c:\1\1.csv
$files = (Get-Childitem c:\1\1.csv).pspath
$content = get-content $files | Select-Object -Skip 4
clear-content $files
add-Content $files -Value "proto,Local Address,Port1,Foreign Address,Port2,State"
foreach ($line in $content -ne "active connections" -ne "  proto  local address      foreign address     state" -ne "活動連接" -ne "  協(xié)議  本地地址      外部地址     狀態(tài)")
{
$liner = $line.Replace("[::1]","local")
$line = $liner
$liner = $line.Replace("[::]","local")
$line = $liner
$liner = $line.Replace("127.0.0.1"," local")
$line = $liner
$liner = $line.Replace("0.0.0.0"," local")
$line = $liner
$liner = $line.Replace("10.10.14.20"," local")
$line = $liner
$liner = $line.Replace("*","outside")
$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
add-Content $files -Value $liner
}

以上腳本創(chuàng)建csv文件
以下腳本觸發(fā)報(bào)警

$emailSmtpServer = "smtp.163.com"
$emailSmtpServerPort = "25"
$emailSmtpUser = "normanjin@163.com"
$emailSmtpPass = "XXXXXXX"
$Body = "有連接外網(wǎng),可能是***!"
$emailFrom = "normanjin@163.com"
$emailTo = "normanjin@163.com"

$content = Import-CSV -Path c:\1\1.csv | Select "Foreign Address"
foreach ($line in $content -notlike 'local' -notlike '10.10' -notlike 'outside'  -notlike '220.181.12.17')
{
$line
}
if($line -ne $null)
{
$emailMessage = New-Object System.Net.Mail.MailMessage( $emailFrom , $emailTo )
$emailMessage.Subject = "有連接外網(wǎng),可能是***!"
$emailMessage.Body = $Body

$SMTPClient = New-Object System.Net.Mail.SmtpClient( $emailSmtpServer , $emailSmtpServerPort )
$SMTPClient.EnableSsl = $False
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential( $emailSmtpUser , $emailSmtpPass );
$SMTPClient.Send( $emailMessage )
}

以上就是在PowerShell腳本中使用netstat監(jiān)控網(wǎng)絡(luò)連接情況的方法,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

標(biāo)題名稱:如何在PowerShell腳本中使用netstat監(jiān)控網(wǎng)絡(luò)連接情況-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://bm7419.com/article8/cescop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶體驗(yàn)、自適應(yīng)網(wǎng)站品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈移動網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)