PF_PACKET을 이용해서 ethernet 패킷을 만들어서 보내고 싶습니
글쓴이: hsjin120 / 작성시간: 수, 2005/03/30 - 2:01오후
요즘 무선구간에서 EAP-MD5 인증을 하는 경우가 있지요.
이걸 구현하는걸 해보고 싶은데..
일단 RAW socket을 이용해야 한다는걸 알게되었고..
1. socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL));
로 소켓을 생성 한다음..
보내고자 하는 버퍼를 생성 해야 할것 같더군요.
2. MakePacket(char*buf, ... ... )
이렇게 해서 buf에 패킷이 만들어 지면..
3. sendto (fd, buf, len ..... )
이렇게 해서 보내면 되는건가요?
buf는
| dstmac |srcmac | type | DATA | 로 구성이 되겠지요
6byte 6byte 2byte diff...
이렇게 구성하면 되는건가요?
Forums:
헌데 sendto 함수에 대한 자세한 설명은 어디서 볼 수 있을까요?
위 sendto에서 다섯번째와 여섯번째 파라미터를 잘 모르겠네요..
리눅스에서 네트웍 프로그래밍이 처음이라..
질문이 어이없더라도 조금만 이해해 주세요.
sendto의 다섯번째와 여섯번째에
libnet에..
sturct socketaddr sa;
memset(&sa, 0, sizeof(sa))
strncpy(sa.sa-data, device, sizeof(sa.sa_data));
sendto(1,2,3,0, &sa, sizeof(sa.sa_data);
이런형태로 사용하던데..
여기에 device에는 eth0 등 네트웍 디바이스의 이름이 들어가는게 맞나요?
그럼 sendto를 사용하면서 device대신 "eth0"등의 문자열을 사용해도
되는지요..
댓글 달기