2017-12-01 1 views
1

netcat의 GNU 변형을 스크립트에서 사용하려고 시도하지만 항상은 모든 것이 정상인 경우에도 종료 코드 1을 반환합니다. 다음 단계로 내 경우 단계입니다 : GNU netcat 종료 코드는 항상 1입니까?

  • 서버 NC 클라이언트

    1. 실행 nc -l 127.0.0.1 -p 7000
    2. 실행 nc 127.0.0.1 7000
    3. 보도 Ctrl + C는 NC 항상 감지 할 날없는하게 1

    반환 bash 스크립트에서 소켓 바인드 오류. Arch Linux의 GNU netcat입니다. 주소가 사용 중일 때 아치를위한 BSD netcat이 소켓 바인드 오류에서 실패하지 않으므로 어느 쪽이 더 좋을까요 ...

  • +2

    클라이언트 종료 서버가 실패 할 수있는 이유 것 같다. 클라이언트에서 ctrl + d를 사용하면 어떻게됩니까? –

    +0

    GNU netcat에서 - 아무것도 안합니다. – Lapsio

    답변

    3

    GNU Netcat 소스 코드를 살펴본 후에 나는 당신에게 나쁜 소식을 가지고 있습니다 ...

    int c, glob_ret = EXIT_FAILURE; 
    

    가변 glob_retEXIT_FAILURE는 (1)로 설정되고 포트 스캔 모드 또는 터널 모드에서만 변화한다. 변수는 청취 모드에서 설정되지 않으므로 프로그램은 항상 1 코드로 종료됩니다.

    당신은 여기 netcat.c 소스 파일 좀 걸릴 수 있습니다 : https://pastebin.com/fh66BPgg (기능 main를)

    +0

    솔직히 재미 있습니다. 그런 프로그램이 존재하고 있고, 사용되고 있고 심지어 Archcat의 netcat을위한 기본 선택이되었다. – Lapsio

    관련 문제