네트워크 내에서 통신은 IP 주소가 아닌 MAC 주소를 사용한다는 것을 알고 있습니다. 그래서 저는 항상 우리가 통신을 위해서만 MAC 주소를 사용하는 서버 - 클라이언트 패러다임에 소켓 프로그램을 작성할 수 있는지 생각했습니다. 그러나 IP 주소가 아닙니다. 즉, sock_in 구조체는 채워지지 않아야하며 LAN 내에서 통신 할 수 있어야합니다. .IP 주소를 사용하지 않고 네트워크에서 링크 계층 통신을 시연하는 소켓 프로그램
답변
위의 예제 (Carl 제공)에서 설명한대로 Raw 소켓을 사용하면 L3 헤더에 액세스 할 수 있습니다. 그러나 최신 Windows (XP SP3, Vista 및 7)에서는 소켓 소켓에 의해 원시 소켓이 크게 제한되므로 원하는 임의의 데이터를 전송하기가 어렵습니다.
이더넷 어댑터에 훨씬 더 원시 액세스 할 수있는 특수 라이브러리를 사용할 수도 있습니다. WinPcap (Windows의 경우) 또는 libpcap (Linux의 경우)을 사용하면 이더넷 헤더를 포함한 전체 패킷 데이터를 조작 할 수 있으며 원하는 다른 L2 프로토콜을 실제로 보낼 수 있습니다.
Windows에서'socket()'과'sendto()'를 사용하여 ARP 패킷을 보내고 싶을 때이 제한이 적용됩니까? – Biswapriyo
예. ARP는 L1과 L2 (L1.5의 종류) 사이에 있기 때문에 ARP 패킷을 직접 제어 할 수없고 표준 소켓에서 생성 할 수 없습니다. –
이 문제에 관해 질문이 있습니다. 그 질문에 답을 해줄 수 있습니까? 내 프로필을보고 질문을 찾으십시오. – Biswapriyo
- 1. 내 네트워크에서 IP 주소를 찾으십시오
- 2. 어디에서 IP 주소를 제한해야합니까?
- 3. 소켓 통신 C# - IP 주소
- 4. 네트워크에서 사용되지 않는 IP 주소를 찾는 방법은 무엇입니까?
- 5. 소켓 통신 (C# - IP-Port)
- 6. iPhone에서 현재 Wi-Fi 액세스 포인트의 IP 주소를 가져 옵니까?
- 7. 시뮬레이션으로 소켓 통신을 오프라인으로 테스트하십시오.
- 8. 컴퓨터 네트워크에서 전송 계층 프로토콜 구현을위한 설명서
- 9. SNMP : 네트워크에서 MAC 주소를 찾는 방법은 무엇입니까?
- 10. 소켓 프로그래밍이 NAT 네트워크에서 실패했습니다
- 11. gprs 모뎀의 tcp/ip 소켓
- 12. admin으로 실행하지 않고 런타임에 app.config의 IP 주소를 변경해야합니다.
- 13. TCP와 비슷하게 애드혹 네트워크에서 응용 프로그램 계층 오버레이가 발생합니다.
- 14. IP 주소를 비교하는 방법
- 15. 인터페이스의 IP 주소를 얻으십시오
- 16. IP 주소를 얻는 방법?
- 17. PHP에서 IP 주소를 비교
- 18. TcpListener : GPRS IP 주소를 포함하여 모든 주소를 수신합니다.
- 19. UdpClient IP 주소를 변경하는 방법은 무엇입니까?
- 20. PageMethod에서 IP 주소를 얻는 방법?
- 21. IP 주소를 나타내는 HTTP 리디렉션
- 22. IP 주소를 얻는 펄 코드
- 23. IP 주소를 도메인 이름으로 리디렉션
- 24. JBoss에서 IP 주소를 기록하는 방법
- 25. IP 주소를 C 프로그래밍과 비교하십시오.
- 26. web.py에 수신 IP 주소를 기록하십시오.
- 27. 클라이언트 IP 주소를 얻는 방법
- 28. 아이폰의 로컬 IP 주소를 찾기
- 29. 내 실제 IP 주소를 숨기기
- 30. IP 주소를 추적하고 소유자를 찾으십시오
물론 그런 프로그램을 작성할 수 있습니다. 질문 있습니까? –
C에서 소켓 프로그래밍을 사용하여 많은 프로그램을 작성 했으므로이 프로그램을 작성하는 방법을 알려 줄 수 있습니까?하지만이 프로그램을 시도한 적이 없으므로 몇 가지 힌트를 주시겠습니까? – pradeepchhetri
하지만 코드에서 IP 주소 구조를 채 웁니다. host_address.sin_addr.s_addr = INADDR_ANY; 하드웨어 주소를 기반으로하지 않습니다 – pradeepchhetri