2010-09-23 157 views
8

在使用上幾乎所有的UNIX系統中可用的ping,ping命令廣播地址很簡單:(!並不斷煩人)Linux的Ping廣播開關

$ ping 192.168.11.255 

但是,如果這是在Linux上,非標準完成響應發生:

$ ping 192.168.11.255 
Do you want to ping broadcast? Then -b 

自從我第一次看到它以來,這讓我感到無比的煩惱--Linux ping並不是這樣的。我搜尋了這個開關的來源,並且無法找到它何時進入或者爲什麼有必要進行任何討論。

好像這個開關甚至不認爲足夠:

$ ping -b 192.168.11.255 
WARNING: pinging broadcast address 
PING 192.168.11.255 (192.168.11.255) 56(84) bytes of data. 
64 bytes from 192.168.11.22: icmp_seq=1 ttl=64 time=0.225 ms 

這真的有必要?編寫一個修補程序可以修復Linux ping,所以它的工作原理應該是這樣的...

我不能相信沒有其他人抱怨過這個,但是如果他們確實在Google上找不到它。

+0

我同意。我也很好奇,爲什麼添加了這個。 – aioobe 2010-09-23 21:54:53

+0

在做這件事情之前,你要三思而行,讓數百臺機器用ICMP數據包回覆,從而阻塞網絡。 – nos 2010-09-23 21:58:33

+1

這應該是在superuser.com .... – t0mm13b 2010-09-23 22:22:46

回答

2

你可以把

alias ping='ping -b' 

.bashrc文件:-)

+0

我認爲這個問題更像是爲什麼開關存在於第一位。 – 2010-09-23 21:56:40

+0

馬蒂是正確的。此外,只有當地址是廣播地址時,-b開關纔有效;否則,用法顯示結果。 – Mei 2010-09-23 22:02:16

+0

@Matti:是的,我明白這個問題是關於添加'-b'開關的原因,而不是解決方法! @大衛:在這裏工作。據我瞭解ping源代碼的東西(http://www.linux-ipv6.org/gitweb/gitweb.cgi?p=git​​root/iputils.git;a=blob;f=ping.c;h=4472d777f7e098525b57c09c8f748ec877e6d518; hb = HEAD)它只允許通過設置套接字選項進行廣播。不過,我猜這可能不適用於某些系統。 – 2010-09-24 09:43:35

1

我可以想像覺得一個場景,這可能有用的。如果您在網絡上配置的廣播地址不是所有主機位都是1的地址。因此,如果沒有這樣的提示,你可能會偶然ping廣播地址。我想這很糟糕。