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및 명령 headtail첫 번째 또는 마지막 n바이트를 파이프하도록 지시합니다.

관련 정보