ping을 broadcast로 날려주기
글쓴이: 익명 사용자 / 작성시간: 수, 2002/07/24 - 9:31오후
ping을 broadcast로 날려주고 싶은데요..어떻게 해야할지 잘 모르겠습니
다..
어떻게 해야하나요..
ping은 스티븐슨씨께서 쓰신..프로그램을 그대로 사용해서 구현했는데..
브로드캐스트로 날려보려고 노력했으나..잘 않됩니다..
소켓의 옵션을 주어서 날려보지만..
LAN 상에 있는 클라이언트들이 응답하는 메시지가 출력되지 않습니다..
어떤 이유인지 좀 가르쳐 주세요...
어떻게 해야하나요..
고수님들의 자상한 조언을 부탁드립니다..
즐프하세요...
Forums:
Re: ping을 broadcast로 날려주기
이상하네요.
일반적으로 ping은 ICMP를 사용하는데 브로드케스트를 쓰면
그메세지가 어떻게 되돌아 오나요..
단언 하건데 절대로 되돌아 오지 않습니다.
돌아오는 것 처럼 보이는 것은 브로드 케스트의 속성 때문에
그렇게 보이는 것일뿐 이것은 (tcp/ip)의 브로드케스드 속성 때문 이지 상
대방으로 부터 되돌아 오는 것은 절대로 아님니다.
단지 ping메세지를 브로드케스트로 날리겠다면(되돌아 오는것과는 상관없
이) 모겠지만 그렇게 하실 의향이라면 스레드를 올리면 답변을 주지요.
broadcast 된 icmp 받기 문제없지 않나요?
음.. icmp 는 어차피 ip 레이어 위에서 올라가는건데 일반적인
브로드캐스트와 어차피 같지 않나요?
ping 할 때도 같은 네트웍으로 핑을 날리면 (예를들어 192.168.0.255)
같은 네트웍 주소를 가지는 리눅스 호스트에서는 응답이 날아오지 않나요?
(음..윈도는 안날아오더군요.. 구현 차이인듯..)
브로드캐스트의 속성 때문에 그렇게 보이는 것일 뿐이라고 말씀하셨는데,
구체적으로 설명해 주셨으면 합니다 ^^
제 지식으로는 전혀 문제될 게 없을 것 같아서요...
Re^3: broadcast 된 icmp 받기 문제없지 않나요?
당연히 안돌아오지요...
브로드케스트에 대한 응답 프로그램이 있다면 모를까.
지금의 tcp모듈은 그런 것을 가지고 있지 안습니다.
불행히도.
직접 만든다면 상황이 달라지겠지요.
Re^4: broadcast 된 icmp 받기 문제없지 않나요?
[root~]# ping -c 2 -b 203.252.165.255
WARNING pinging broadcast address
Warning no SO_TIMESTAMP support, falling back to SIOCGSTAMP
PING 203.252.165.255 (203.252.165.255) from 203.252.165.75 56(84) bytes of dat
a.
64 bytes from 203.252.165.75 icmp_seq=0 ttl=255 time=97 usec
64 bytes from 203.252.165.44 icmp_seq=0 ttl=255 time=370 usec (DUP!)
64 bytes from 203.252.165.179 icmp_seq=0 ttl=255 time=463 usec (DUP!)
64 bytes from 203.252.165.120 icmp_seq=0 ttl=255 time=561 usec (DUP!)
64 bytes from 203.252.165.19 icmp_seq=0 ttl=255 time=659 usec (DUP!)
64 bytes from 203.252.165.130 icmp_seq=0 ttl=60 time=1.686 msec (DUP!)
64 bytes from 203.252.165.105 icmp_seq=0 ttl=60 time=1.789 msec (DUP!)
64 bytes from 203.252.165.251 icmp_seq=0 ttl=64 time=2.096 msec (DUP!)
64 bytes from 203.252.165.250 icmp_seq=0 ttl=255 time=2.194 msec (DUP!)
64 bytes from 203.252.165.248 icmp_seq=0 ttl=255 time=2.291 msec (DUP!)
64 bytes from 203.252.165.246 icmp_seq=0 ttl=255 time=2.414 msec (DUP!)
64 bytes from 203.252.165.247 icmp_seq=0 ttl=255 time=2.536 msec (DUP!)
64 bytes from 203.252.165.249 icmp_seq=0 ttl=255 time=3.736 msec (DUP!)
64 bytes from 203.252.165.254 icmp_seq=0 ttl=255 time=4.115 msec (DUP!)
64 bytes from 203.252.165.245 icmp_seq=0 ttl=255 time=4.844 msec (DUP!)
64 bytes from 203.252.165.75 icmp_seq=1 ttl=255 time=75 usec
--- 203.252.165.255 ping statistics ---
2 packets transmitted, 2 packets received, +14 duplicates, 0% packet loss
round-trip min/avg/max/mdev = 0.075/1.870/4.844/1.420 ms
실제로 받는것은 정말로 2개밖에 없군요(2 packets transmitted, 2 packets received)
나머지는 DUP! 라고 나오는데..
여기서 +14 duplicates 에 대해서 설명좀 부탁 드려도 될까요?
문제 해결은 ping 소스에서 이부분을 이용해서 해결할 수 있어 보이는군요..
아하
도움이 될지는 모르겠는데
위에 댓글처럼 브로드캐스팅을 날릴 경우
wireshark에서는 응답을 받습니다. reply로 근처에 있는 모든 노드로 부터 응답을 받는 것을 확인했습니다.
브로드케스팅 핑은
브로드케스팅 핑은 기본적으로 응답 안하게 되어있고 리눅스라면
이런식으로 브로드케스트 핑에 응답하도록 할 수 있습니다.
댓글 달기