私はルーターとしてFreebsdを持っています。
ローカルネットワークはインターフェースsk0上にあります:inet 10.254.239.1 netmask 0xffffff00 broadcast 10.254.239.255
私のローカルネットワークには、FreebsdのDHCPサーバーからip(10.254.239.2)を取得するコンピューター(Windows 7)があります。
Freebsd自体からbradcast10.254.239.255にpingを実行しようとしても、何も起こりません。
--- 10.254.239.255 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss
#arp -a
言う:
.。
? (10.254.239.255)sk0の(不完全)で期限切れ[イーサネット]
.。
ファイアウォールはこのインターフェースですべてを許可します
どこを見ればいいですか?放送を機能させるにはどうすればよいですか?
ホスト検出を実行する場合は、ブロードキャストpingを使用せず、特定のサブネットに対して可能な各順列にpingを実行するだけです。重そうに聞こえますが、実際には数秒かかります(括弧は重要です)。
$ time ( s=192.168.0 ; for i in $(seq 1 254) ; do ( ping -n -c 1 -w 1 $s.$i 1>/dev/null 2>&1 && printf "%-16s %s\n" $s.$i responded ) & done ; wait ; echo )
192.168.0.5 responded
192.168.0.11 responded
192.168.0.2 responded
192.168.0.254 responded
192.168.0.4 responded
real 0m1.317s
user 0m0.004s
sys 0m0.084s
ほとんどのオペレーティングシステムは、デフォルトでブロードキャストICMP pingを単に無視します セキュリティ上の理由から 「機能させる」ことはなく、他の種類のブロードキャストには影響しません。
FreeBSDでは、net.inet.icmp.bmcastecho
sysctlはこの機能を切り替えます。
この質問は非常に古いことは知っていますが、「ubuntubroadcastping」をグーグルで検索したときの上位の結果の1つです。
canLinuxホストからブロードキャストping要求(ICMPエコー要求)を非常に簡単に送信できます(オプション-b。 Microsoftは、何らかの理由でこれを許可していません。
Ubuntuホストから送信されたブロードキャストpingは次のとおりです。
ping -b 192.168.1.255
WARNING: pinging broadcast address
PING 192.168.1.255 (192.168.1.255) 56(84) bytes of data.
64 bytes from 192.168.1.247: icmp_seq=1 ttl=64 time=0.031 ms
64 bytes from 192.168.1.254: icmp_seq=1 ttl=64 time=0.960 ms (DUP!)
64 bytes from 192.168.1.202: icmp_seq=1 ttl=64 time=92.3 ms (DUP!)
ブロードキャストを許可するには、-bオプションに注意してください。ご覧のとおり、Ciscoスイッチ、自分のUbuntuホスト、Appleラップトップ)など、ネットワーク上のいくつかのホストが応答しました。
そして、はい、他の人が以前に言ったように、ブロードキャストpingはネットワークをスキャンするのにひどいです。一部のホストは単にエコー要求を無視します。この目的のためのはるかに優れたツールがあります(例:nmap)。