HOWTO · PowerShell
PowerShell의 포트에서 수신 대기
이 자습서에서는 PowerShell의 포트에서 수신 대기하는 방법을 보여줍니다.
이 페이지의 내용
이 자습서에서는 PowerShell의 포트에서 수신 대기하는 방법을 보여줍니다.
PowerShell 포트에서 수신 대기
단계별 명령과 함께 PowerShell을 사용하여 포트에서 수신 대기할 수 있습니다. PowerShell에서 [System.Net.Sockets.TcpListener]Port 명령을 사용하여 수신기를 초기화할 수 있습니다.
아래 단계에 따라 PowerShell을 사용하여 포트에서 수신 대기합니다.
-
먼저 PowerShell을 관리자로 열어야 합니다. 시작 메뉴에서
PowerShell을 검색하고 PowerShell 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음관리자 권한으로 실행을 클릭합니다.시스템에서 허가를 요청할 수 있습니다.
예를 클릭합니다. -
다음 단계에서 PowerShell 스크립트를 생성합니다. 다음 명령을 실행합니다.
New-Item 'C:\Users\Sheeraz\DemoTCPServer.ps1' -type file위 명령은
C:\Users\Sheeraz경로에DemoTCPServer.ps1이라는 이름의 PowerShell 파일을 생성합니다. 출력을 참조하십시오.Directory: C:\Users\Sheeraz Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 11/3/2022 4:02 PM 0 DemoTCPServer.ps1 -
파일이 생성되면 다음 단계는 스크립트를 편집하는 것입니다. 다음 명령을 실행합니다.
ise C:\Users\Sheeraz\DemoTCPServer.ps1위 명령은 PowerShell ISE에서
DemoTCPServer.ps1파일을 편집합니다. -
DemoTCPServer.ps1스크립트에 대한 단계별 프로세스를 따릅니다.-
먼저 포트, 텍스트 파일, 서버 배너에 대한 변수를 초기화합니다.
-
그런 다음 지정된 포트에 엔드포인트를 생성합니다.
-
이제
New-Object System.Net.Sockets.TcpListener $DemoEndpoint명령을 사용하여 수신기가 있는 TCP 포트를 만듭니다. 이렇게 하면 포트에서 수신하는 데 도움이 됩니다. -
TCP 포트를 시작합니다.
-
TCP 포트가 TCP 클라이언트를 수락하도록 허용합니다.
-
TCP 클라이언트의 스트림을 만듭니다.
-
이제 스트림으로 작성자를 생성합니다.
-
배너를 사용하여 줄을 쓰고 작성자를 플러시합니다.
-
이제 포트에서 수신할 스트림을 읽을 버퍼를 만듭니다.
-
루프를 사용하여 스트림의 각 줄을 읽습니다.
-
포트에서 수신 대기를 수행했으며 이제 버퍼, 스트림 및 TCP 클라이언트를 폐기합니다.
-
마지막으로 TCP 포트를 중지합니다. PowerShell 스크립트
DemoTCPServer.ps1에서 이러한 단계를 구현해 보겠습니다.
```powershell $DemoPort = 8080 $DemoFile = 'C:\Users\Sheeraz\demo.txt' $DemoBanner = "Connection: OK" $DemoEndpoint = New-Object System.Net.IPEndPoint([IPAddress]::Any,$DemoPort) $DemoTCPPort = New-Object System.Net.Sockets.TcpListener $DemoEndpoint $DemoTCPPort.Start() Write-Output "The TCP Port $DemoPort is Open Now" $AcceptIngTcp = $DemoTCPPort.AcceptTcpClient() $Stream = $AcceptIngTcp.GetStream() $DemoWriter = New-Object System.IO.StreamWriter($Stream) $DemoBanner | % { $DemoWriter.WriteLine($_) $DemoWriter.Flush() } while($true) { $DemoBuffer = New-Object System.IO.StreamReader $Stream $DEMOLINE = $DemoBuffer.ReadLine() if ($DEMOLINE -eq "quit") { break } else { $DEMOLINE $DEMOLINE | Out-File $DemoFile -Append } } $DemoBuffer.Dispose() $Stream.Dispose() $AcceptIngTcp.Dispose() $DemoTCPPort.Stop() Write-Output "The TCP Port $DemoPort is Closed" ```-
스크립트가 생성되면 저장합니다. 이제 포트 작업에서 수신 대기로 TCP 포트를 생성하는 스크립트를 실행할 시간입니다. 다음 명령을 실행합니다.
PowerShell.exe -ExecutionPolicy Bypass -File C:\Users\Sheeraz\DemoTCPServer.ps1위의 명령은 이제 TCP 포트를 시작하고 포트에서 수신 대기합니다. 명령의 출력은 다음과 같습니다.
The TCP Port 8080 is Open Now -
원격 컴퓨터의 TCP 포트에 연결하려면 cmd에서 다음
telnet명령을 실행합니다. 먼저제어판>프로그램>Windows 기능 켜기 또는 끄기에서 확인할 수 있는telnet서비스가 활성화되어 있는지 확인합니다.다음 명령을 참조하십시오.
telnet 10.10.10.10 8080 -
여기에서 다운로드할 수 있는
PuTTY와 같은telnet클라이언트 애플리케이션을 사용할 수도 있습니다. 연결 유형에서기타및텔넷을 선택하는 것을 잊지 마십시오.아래 스크린샷을 참조하십시오.
-
IP와 포트를 입력하고
열기를 클릭합니다.
-
이제 이 터미널을 사용하여 연결을 통해 데이터를 보내고 포트에서 수신 대기할 수 있습니다. 예를 들어:
This is PowerShell Listen on Port Test
-
위에서 보낸 데이터는
'C:\Users\Sheeraz\demo.txt'파일에 저장되며 이는 해당 포트에서 수신 대기가 수행됨을 의미합니다.
-
마지막으로, TCP 연결을 종료하려면
quit명령을 실행하십시오.
-