netcat에게 파일에서 패킷당 보낼 바이트 수를 알려주는 구분 기호나 방법이 있습니까? 가능한 한 빨리 전송되어야 하기 때문에 스크립트에서 netcat을 여러 번 호출하는 것은 허용되지 않습니다.
mnc(멀티캐스트 netcat)를 사용하여 바이너리 데이터가 포함된 UDP 패킷을 파일로 캡처하고 다음과 같이 재생해 보았습니다.
# 멀티캐스트 패킷을 230.250.5.1 12340으로 보내는 프로그램을 시작합니다.>
# mnc 패킷 캡처를 시작합니다:
$mnc -l -i eth1 -p 12340 230.250.5.1 >capturefile
... # netcat을 사용하여 데이터 패킷을 재생하고 230.250.5.1 12345로 보냅니다.
$netcat -c -w 1 -u -s 10.20.30.40 230.250.5.1 12345 <capturefile
캡처파일에 내가 보내려는 패킷이 있는 것 같습니다.
netcat으로 재생하면 패킷이 연결됩니다. 패킷 캡처 중에 UDP 패킷 크기는 208이고 Wireshark는 패킷 크기를 250으로 표시하며 여기에 이더넷 바이트가 포함된 것으로 가정합니다. 재생 시 Wireshark는 패킷 크기가 1016임을 보여줍니다.
답변1
이것이 불가능할 수도 있지만 socat
대신 사용하는 경우 다음을 netcat
사용하여 고정 블록 크기를 쉽게 설정할 수 있습니다 -b
.
socat -b 208 - udp4:230.250.5.1:12345 <capturefile
가변 길이 데이터가 있는 경우 tcpdump
및 파일 형식 사용 tcpreplay
을 고려할 수 있습니다 pcap
.