ping을 broadcast로 날려주기

익명 사용자의 이미지

ping을 broadcast로 날려주고 싶은데요..어떻게 해야할지 잘 모르겠습니
다..
어떻게 해야하나요..
ping은 스티븐슨씨께서 쓰신..프로그램을 그대로 사용해서 구현했는데..
브로드캐스트로 날려보려고 노력했으나..잘 않됩니다..
소켓의 옵션을 주어서 날려보지만..
LAN 상에 있는 클라이언트들이 응답하는 메시지가 출력되지 않습니다..
어떤 이유인지 좀 가르쳐 주세요...
어떻게 해야하나요..
고수님들의 자상한 조언을 부탁드립니다..
즐프하세요...

익명 사용자의 이미지

이상하네요.
일반적으로 ping은 ICMP를 사용하는데 브로드케스트를 쓰면
그메세지가 어떻게 되돌아 오나요..

단언 하건데 절대로 되돌아 오지 않습니다.
돌아오는 것 처럼 보이는 것은 브로드 케스트의 속성 때문에
그렇게 보이는 것일뿐 이것은 (tcp/ip)의 브로드케스드 속성 때문 이지 상
대방으로 부터 되돌아 오는 것은 절대로 아님니다.

단지 ping메세지를 브로드케스트로 날리겠다면(되돌아 오는것과는 상관없
이) 모겠지만 그렇게 하실 의향이라면 스레드를 올리면 답변을 주지요.

익명 사용자의 이미지

음.. icmp 는 어차피 ip 레이어 위에서 올라가는건데 일반적인

브로드캐스트와 어차피 같지 않나요?

ping 할 때도 같은 네트웍으로 핑을 날리면 (예를들어 192.168.0.255)

같은 네트웍 주소를 가지는 리눅스 호스트에서는 응답이 날아오지 않나요?

(음..윈도는 안날아오더군요.. 구현 차이인듯..)

브로드캐스트의 속성 때문에 그렇게 보이는 것일 뿐이라고 말씀하셨는데,

구체적으로 설명해 주셨으면 합니다 ^^

제 지식으로는 전혀 문제될 게 없을 것 같아서요...

익명 사용자의 이미지

당연히 안돌아오지요...

브로드케스트에 대한 응답 프로그램이 있다면 모를까.

지금의 tcp모듈은 그런 것을 가지고 있지 안습니다.

불행히도.

직접 만든다면 상황이 달라지겠지요.

익명 사용자의 이미지

[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 소스에서 이부분을 이용해서 해결할 수 있어 보이는군요..

jeiley의 이미지

도움이 될지는 모르겠는데

위에 댓글처럼 브로드캐스팅을 날릴 경우

wireshark에서는 응답을 받습니다. reply로 근처에 있는 모든 노드로 부터 응답을 받는 것을 확인했습니다.

bugiii의 이미지

브로드케스팅 핑은 기본적으로 응답 안하게 되어있고 리눅스라면

echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts

이런식으로 브로드케스트 핑에 응답하도록 할 수 있습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.