내가 원하는 작업 : 사용자 공간에 레이어 2 프로토콜을 구현합니다. wlan에서 레이어 2 프레임을 송수신하는 방법
그래서 나는 패킷을 도청 리눅스 2.6.32에서 PCAP을 사용하고 있습니다 : 모든 패킷에 대해 잘 작동...
struct pcap_t *pcap_h = pcap_open_live("wlan0", BUFSIZ, 1, 0, errbuf);
...
while (1) {
int ret = pcap_loop(pcap_h, -1, newpkt_callback, NULL);
...
}
...
합니다. 나는 더 ether_head없이 IP 헤더로 패킷을 보낼 PCAP 사용할 때, :
const char pkt[] = "WHATEVER";
nsent = pcap_sendpacket(pcap_h, (const u_char *)pkt, len);
...
나는 같은 프로그램을 실행하는 다른 노트북에 로컬 호스트에 패킷을 도청하고,뿐만 아니라 수 있습니다. 그래서 질문은 "어떻게 wlan에 ether_head없이 메시지를 브로드 캐스트 할 수 있습니까?"입니다. 모든 포인터는 감사하겠습니다.
원시 소켓과 PF_PACKET을 사용하여 실제로 시도했지만 문제는 여전히 존재합니다. AP의 경우 프로토콜의 핵심은 액세스 포인트를 사용하지 않는 것입니다. 다시 말해, 무선 장치에 데이터를 주입하고 반대쪽에서 데이터를 수신하는 방법을 찾고 있습니다. – Peyman
@Peyman : 실제로 Ad-hoc 모드에서 카드를 연결하고 있습니까? 또한 일부 무선 카드는 무차별 모드를 지원하지 않습니다. – caf
나는 ad-hoc 모드도 시도했다. 그리고 무차별 모드의 경우,'pcap_open_live'는 경고 메시지를 반환하지 않습니까? – Peyman