PowerShell TCP Socket Function
The PowerShell function example below can be used to transmit information using the TCP protocol. For example, to perform an HTTP GET command on a website.
function fnTCPSock([string]$sHostName, [string]$sPort, [string]$sScript) { # Converteer script string to byte for write stream... [byte[]]$byteScript = [System.Text.Encoding]::ASCII.GetBytes($($sScript)) # Open 4096 Bytes buffer for read stream... [byte[]]$byteBuffer = New-Object System.Byte[] 16384 # Connect to host... $oTCPSock = New-Object System.Net.Sockets.TcpClient($sHostName, $sPort) $oStream = $oTCPSock.GetStream() # Feed script(byte) tot write stream... $oStream.Write($byteScript, 0, $byteScript.Length) # Return read buffer converted to string... [string]$sCount = $oStream.Read($byteBuffer, 0, 16384) return [System.Text.Encoding]::ASCII.GetString($byteBuffer, 0, $sCount) # Close objects... $oResult.Close() $oSockTCP.Close() }
[string]$sScript1 = "GET / HTTP/1.1`r`nAccept: text/html`r`nHost: [virtualhostname]`r`nReferer: http://host.domain.name/site/`r`n`r`n`r`n" [string]$sResult1 = fnTCPSock "hostname" "80" $($sScript1)