2010-03-22 6 views
1

PHP 스크립트로 IGMP 패킷을 보낼 수 있습니까? 전송 계층에서도 IGMP가 있습니까?PHP로 IGMP 보내기

224.0.0.251로 예정된 일부 JOIN 패킷을보고있었습니다.

IP 헤더에 할당 된 포트가 없었지만 MAC 주소가 지정되어있어 IGMP가 전송 레이어가 아니라 네트워크 레이어에 있다고 생각하게되었습니다. (잘하면 나는 그 말을했다)

나를 위해 이것을 명확히 할 수 있습니까? 나는 단지 JOIN 패킷을 보내려하고있다.

나는 rfc3376을 통해 해답을 찾으려고했지만 그 중 하나를 구성하는 방법을 보여줍니다. 그렇게하려고하면 잘못된 패킷이 나옵니다.

답변

0

아마도 기존의 PHP를 사용하지 않았을 것입니다. 기존 확장을 사용하면 TCP/UDP 계층에 액세스 할 수 있지만 아래에는 액세스 할 수 없습니다. Nemesis project의 nemesis-igmp와 같은 명령 줄 도구를 사용하면됩니다.

1

전통적으로 소켓 옵션 IP_ADD_MEMBERSHIP (및 해당 IP_DROP_MEMBERSHIP)을 사용하여 멀티 캐스트 그룹에 참가하게됩니다. 그러면 운영 체제가 IGMP 가입 패킷을 생성합니다.

이 옵션은이 옵션은 기본적으로 사용할 수없는 bugs.php.net 사이트 this 문제에 따라 setsockopt()

IPPROTO_IP "수준"을 사용하여 설정됩니다. 그러나 PHP 설치에 추가해야하는 페이지에 나열된 패치가 있습니다.