ASCII 파일 라인을 NetCat용 바이너리 데이터 패킷으로 변환

ASCII 파일 라인을 NetCat용 바이너리 데이터 패킷으로 변환

다음과 같은 ASCII 파일이 있습니다.

36,36,0,1
36,36,0,2
...

내가 원하는 것은 NetCat을 사용하여 이진 TCP 세그먼트의 페이로드로 각 줄을 보내는 것입니다.

파일의 숫자를 이진 표현으로 변환하기 위해 Perl을 사용하여 print pack("c", <STDIN>);전체 파일을 쉽게 변환할 수 있습니다(숫자별로). 보내는 방법도 알고 있는데 cat file | netcat localhost 9999이 명령은 전체 콘텐츠를 하나의 세그먼트에 페이로드로 보냅니다.

원본 파일(바이너리로 변환됨)의 각 줄을 새 TCP 세그먼트로 보내려면 어떻게 해야 합니까?

답변1

좋아, 그래서 해결책을 찾았습니다.

파일의 각 바이트를 새 TCP 세그먼트로 보내려면 n아래와 유사한 명령을 사용할 수 있습니다.

for i in `seq 1 $num_of_segments`
  do
  head -c $i file_name | tail -c 1 | netcat localhost 9999
done

-c n첫 번째 바이트 또는 마지막 바이트를 파이프할지 여부를 나타내는 명령의 옵션 .headtailn

관련 정보