주요 목표는 포트를 통해 데이터를 전송하고 포트에 연결할 수 없는 경우 들어오는 ICMP 메시지를 수신하여 열려 있는 UDP 포트를 감지하는 것입니다. 이렇게 하려면 다음 Go 함수를 사용하여 고루틴으로 실행하세요.
으아아아이는 ICMP 핑 및 대상 연결 불가를 감지할 수 있지만 항상 길이가 0인 메시지를 반환합니다. 예:
2023/10/11 14:38:32 消息 = '',长度 = 0,源 IP = 127.0.0.1
메시지 구문 분석을 시도했지만 비어 있기 때문에 런타임 오류가 반환됩니다. 또한 go 실행 파일에 루트 권한을 부여했지만 그것도 작동하지 않았습니다.
EDIT: OS는 Ubuntu 20.04
내 실수를 발견했습니다...
초기화되지 않은 버퍼에서 읽으려고 했습니다. 수신 버퍼를 다음과 같이 변경하면 문제가 해결됩니다.
으아아아위 내용은 icmp.Packetconn에서 길이가 0인 ICMP 패킷만 수신합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!