【发布时间】:2011-01-14 21:50:20
【问题描述】:
我正在尝试在 WinXP SP3 上 ping 广播地址 255.255.255.255。
如果我使用命令行,我会收到主机错误:
C:\>ping 255.255.255.255
Ping request could not find host 255.255.255.255. Please check the name and try again.
如果我尝试使用 iphlpapi 的 C++ 程序,IcmpSendEcho() 会失败,GetLastError 返回 11010 IP_REQ_TIMED_OUT。
HANDLE h = ::IcmpCreateFile();
IPAddr broadcast = inet_addr( "255.255.255.255" );
BYTE payload[ 32 ] = { 0 };
IP_OPTION_INFORMATION option = { 255, 0, 0, 0, 0 };
// a buffer with room for 32 replies each containing the full payload
std::vector< BYTE > replies( 32 * ( sizeof( ICMP_ECHO_REPLY ) + 32 ) );
DWORD res = ::IcmpSendEcho( h,
broadcast,
payload,
sizeof( payload ),
&option,
&replies[ 0 ],
replies.size(),
1000 );
::IcmpCloseHandle( h );
我可以毫无问题地ping本地广播192.168.0.255。
ping 全球广播需要做什么?
谢谢, 保罗H
【问题讨论】:
-
让我们听听
ping ff02::1%0会做什么...(可能需要将 %0 替换为 %1、%2 等以选择接口。) -
@user562374 -
Ping request could not find host ff02::1%X. Please check the name and try again.对于 X 的所有值。
标签: c++ networking broadcast ping