亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PowerShell > 正文

PowerShell小技巧之發送TCP請求

2020-03-26 19:14:37
字體:
來源:轉載
供稿:網友

很多時候我們需要通過Socket發送特定的TCP請求給服務器的特定端口來實現探測服務器的指定端口所開啟的服務。很多語言都有相應的方法實現上述需求,當然,PowerShell也不例外,比如我們要發送一個簡單的http請求到指定的web服務器:
GET / HTTP/1.1
Host:cn.bing.com

這里我們想請求微軟必應的中文首頁,如果需要通過PowerShell向cn.bing.com服務器發送get請求,就需要創建一個System.Net.Sockets.TcpClient對象,向指定的服務器和端口發送請求。

具體代碼如下:

 

復制代碼 代碼如下:

        =====文件名:Send-TcpRequest.ps1=====
########################################
# Send-TcpRequest.ps1
## Send a TCP request to a remote computer, and return the response.
## If you do not supply input to this script (via either the pipeline, or the
## -InputObject parameter,) the script operates in interactive mode.
##
## Example:
##
## $http = @"
## GET / HTTP/1.1
## Host:cn.bing.com 
## `n`n
## "@
##
## $http | ./Send-TcpRequest cn.bing.com  80
########################################
param(
        [string] $remoteHost = "localhost",
        [int] $port = 80,
        [switch] $UseSSL,
        [string] $inputObject,
        [int] $commandDelay = 100
     )

 

[string] $output = ""

## Store the input into an array that we can scan over. If there was no input,
## then we will be in interactive mode.
$currentInput = $inputObject
if(-not $currentInput)
{
    $SCRIPT:currentInput = @($input)
}
$scriptedMode = [bool] $currentInput

function Main
{
    ## Open the socket, and connect to the computer on the specified port
    if(-not $scriptedMode)
    {
        write-host "Connecting to $remoteHost on port $port"
    }

    trap { Write-Error "Could not connect to remote computer: $_"; exit }
    $socket = new-object System.Net.Sockets.TcpClient($remoteHost, $port)

    if(-not $scriptedMode)
    {
        write-host "Connected. Press ^D followed by [ENTER] to exit.`n"
    }

    $stream = $socket.GetStream()

    if($UseSSL)
    {
        $sslStream = New-Object System.Net.Security.SslStream $stream,$false
        $sslStream.AuthenticateAsClient($remoteHost)
        $stream = $sslStream
    }

    $writer = new-object System.IO.StreamWriter $stream

    while($true)
    {
        ## Receive the output that has buffered so far
        $SCRIPT:output += GetOutput

        ## If we're in scripted mode, send the commands,
        ## receive the output, and exit.
        if($scriptedMode)
        {
            foreach($line in $currentInput)
            {
                $writer.WriteLine($line)
                $writer.Flush()
                Start-Sleep -m $commandDelay
                $SCRIPT:output += GetOutput
            }

            break
        }
        ## If we're in interactive mode, write the buffered
        ## output, and respond to input.
        else
        {
            if($output)
            {
                foreach($line in $output.Split("`n"))
                {
                    write-host $line
                }
                $SCRIPT:output = ""
            }

            ## Read the user's command, quitting if they hit ^D
            $command = read-host
            if($command -eq ([char] 4)) { break; }

            ## Otherwise, Write their command to the remote host
            $writer.WriteLine($command)
            $writer.Flush()
        }
    }

    ## Close the streams
    $writer.Close()
    $stream.Close()

    ## If we're in scripted mode, return the output
    if($scriptedMode)
    {
        $output
    }
}

## Read output from a remote host
function GetOutput
{
    ## Create a buffer to receive the response
    $buffer = new-object System.Byte[] 1024
    $encoding = new-object System.Text.AsciiEncoding

    $outputBuffer = ""
    $foundMore = $false

    ## Read all the data available from the stream, writing it to the
    ## output buffer when done.
    do
    {
        ## Allow data to buffer for a bit
        start-sleep -m 1000

        ## Read what data is available
        $foundmore = $false
        $stream.ReadTimeout = 1000

        do
        {
            try
            {
                $read = $stream.Read($buffer, 0, 1024)

                if($read -gt 0)
                {
                    $foundmore = $true
                    $outputBuffer += ($encoding.GetString($buffer, 0, $read))
                }
            } catch { $foundMore = $false; $read = 0 }
        } while($read -gt 0)
    } while($foundmore)

    $outputBuffer
}
. Main
腳本使用方法如下:
$http = @"

GET / HTTP/1.1
Host:cn.bing.com
`n`n
"@
$http | ./Send-TcpRequest cn.bing.com 80

 

執行效果如圖所示:

PowerShell,技巧,發送,TCP請求

需要說明的是,由于頁面返回的內容太長了,這里至少是將返回的內容緩存在一個變量里,并只輸出了變量的頭10行。
有了這個腳本,我們就可以向指定的web服務器發送特定的請求,來實現模擬登陸和操作的功能了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产女人aaa毛片在线| 中文国产成人精品| 一区二区三区动漫| 国产精品久久久久久久久久久久久| 在线观看欧美日韩国产| 欧美日韩久久久久| 欧美性少妇18aaaa视频| 国产亚洲精品日韩| 日韩欧美有码在线| 91理论片午午论夜理片久久| 精品亚洲一区二区三区在线观看| 国产成人啪精品视频免费网| 日韩中文视频免费在线观看| 欧美亚洲在线视频| 亚洲精品久久久一区二区三区| 亚洲精品国精品久久99热| 美女福利视频一区| 中文字幕亚洲精品| 在线成人中文字幕| 日韩中文在线中文网在线观看| 欧美日韩性生活视频| 欧美国产日韩一区二区三区| 91精品国产自产在线观看永久| 久久久综合av| 不卡伊人av在线播放| 国产精品久久久久久久美男| 欧美夫妻性生活视频| 国产精品久久久久久久av电影| 久久精品国产2020观看福利| 国产精品一区二区久久久| 日韩中文字幕在线播放| 日韩精品极品毛片系列视频| 亚洲自拍偷拍福利| 热门国产精品亚洲第一区在线| 韩国三级电影久久久久久| 久久免费视频在线| 欧美黑人xxx| 日韩高清电影好看的电视剧电影| 韩国视频理论视频久久| 国产一区二区三区丝袜| 国产精品欧美久久久| 亚洲成人黄色在线| 欧美视频专区一二在线观看| 日本国产欧美一区二区三区| 亚洲人永久免费| 福利一区福利二区微拍刺激| 欧美高跟鞋交xxxxxhd| 日本亚洲精品在线观看| 538国产精品一区二区在线| 亚洲国产天堂久久综合网| 国产欧美日韩亚洲精品| 国内精品模特av私拍在线观看| 亚洲在线一区二区| 日韩男女性生活视频| 在线观看欧美日韩| 欧亚精品在线观看| 国产福利精品视频| 成人亚洲激情网| 国产亚洲精品高潮| 日本在线精品视频| 午夜欧美不卡精品aaaaa| 日韩在线观看精品| 亚洲女人初尝黑人巨大| 日韩高清欧美高清| 亚洲精品www久久久| 欧美精品久久久久久久久| 国产午夜精品一区理论片飘花| 亚洲人成网7777777国产| 午夜精品一区二区三区在线播放| 亚洲国产精彩中文乱码av在线播放| 精品久久久久久久久久久| 中文字幕在线看视频国产欧美在线看完整| 欧美成人免费在线观看| 国产精品美女免费视频| 亚洲激情视频在线播放| 欧美成人免费在线观看| 一本色道久久综合狠狠躁篇的优点| 国产欧美精品一区二区三区介绍| 国产精品丝袜一区二区三区| 亚洲精品综合久久中文字幕| 国产视频丨精品|在线观看| 91九色国产社区在线观看| 国产精品第2页| 日韩av成人在线观看| 欧美视频在线观看 亚洲欧| 亚洲自拍欧美色图| 久久精品中文字幕免费mv| 亚洲少妇中文在线| 亚洲日本欧美中文幕| 国产综合色香蕉精品| 亚洲成色999久久网站| 韩日欧美一区二区| 精品五月天久久| 97av在线视频| 国产精品扒开腿做爽爽爽的视频| 96国产粉嫩美女| 国产精品久久久| 亚洲天堂av综合网| 国产精品视频999| 国产成人一区三区| 欧美又大粗又爽又黄大片视频| 亚洲精品欧美极品| 久久久久国产精品免费网站| 日韩在线观看高清| 亚洲图片在区色| 精品日韩中文字幕| 午夜精品久久久久久久99黑人| 欧美激情网站在线观看| 国产在线观看精品一区二区三区| 国产精品人成电影在线观看| 欧美日韩一区二区三区在线免费观看| 亚洲xxxx18| 国产精品永久免费视频| 亚洲国产毛片完整版| 欧美性xxxx极品hd欧美风情| 国产亚洲一区精品| 国模精品一区二区三区色天香| 美女啪啪无遮挡免费久久网站| 精品美女国产在线| 国产精品久久久久免费a∨| 最新中文字幕亚洲| 中文字幕少妇一区二区三区| 欧美成人精品一区| 欧美国产中文字幕| 国产精品美腿一区在线看| 另类专区欧美制服同性| www.亚洲人.com| 91免费欧美精品| 国产精品视频导航| 久久在线免费观看视频| 亚洲高清福利视频| 亚洲精品国产综合久久| 久久综合色88| 亚洲国产成人91精品| 日韩免费在线观看视频| 中文字幕日韩电影| 欧美性猛交xxxx乱大交| 超碰97人人做人人爱少妇| 国产精品高精视频免费| 国产一区二区丝袜高跟鞋图片| 欧美—级a级欧美特级ar全黄| 亚洲精品720p| 久久露脸国产精品| 综合网中文字幕| 91免费欧美精品| 日本一区二区在线播放| 国产精品久久久久免费a∨| 色婷婷综合久久久久| 欧美自拍视频在线| 国产网站欧美日韩免费精品在线观看| 欧美丝袜一区二区| 国产91色在线播放| 亚洲最大福利视频| 在线免费观看羞羞视频一区二区| 国产精品一区二区久久久久| 亚洲精品日韩av| 国产999在线观看| 色黄久久久久久| 亚洲激情免费观看| 57pao精品| 一色桃子一区二区| 亚洲国产欧美精品| 色偷偷888欧美精品久久久| 国产精品极品美女粉嫩高清在线|