知道一台电脑的IP,怎么才能知道PING不PING得通,求这样的代码 知道一台电脑的IP,怎么才能知道PING不PING得通,求这样的代码谢谢各位高手啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.codeguru.com/internet/cping.shtml 将命令行输出重定向到文件,然后ShellExecute,ping IP,在文本中读取结果? NetTst::~NetTst(){ closesocket (sockRaw); sockRaw= INVALID_SOCKET; WSACleanup(); }BOOL NetTst::Autotest(char far * szDestHost,int Ktest) { struct sockaddr_in dest,from; char icmp_data[10], recvbuf[100]; unsigned int addr=0; int fromlen = sizeof(from); int timeout = 1000;//ms sockRaw = socket (AF_INET,SOCK_RAW,IPPROTO_ICMP); setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO, (char*)&timeout,sizeof(timeout) ); memset(&dest,0,sizeof(dest)); dest.sin_family = AF_INET; dest.sin_addr.s_addr= inet_addr(szDestHost); memset(icmp_data,0,sizeof(icmp_data)); //clear icmp_data. ((IcmpHeader*)icmp_data)->i_type = 8; //ICMP_ECHO ((IcmpHeader*)icmp_data)->i_code = 0; ((IcmpHeader*)icmp_data)->i_id = (u_short)GetCurrentProcessId(); ((IcmpHeader*)icmp_data)->i_seq = 0; for(int k=0; k<Ktest;k++ ) { ((IcmpHeader*)icmp_data)->i_cksum = 0; ((IcmpHeader*)icmp_data)->i_seq ++; ((IcmpHeader*)icmp_data)->i_cksum=checksum((u_short*)icmp_data,8); sendto(sockRaw,icmp_data,8,0,(struct sockaddr*)&dest,sizeof(dest)); int bread=recvfrom(sockRaw,recvbuf,1024,0,(struct sockaddr*)&from,&fromlen); if (bread == SOCKET_ERROR) { if(k==Ktest-1) return FALSE ; else continue; //try again(3 times) } } return TRUE; //no erros. } 在线等高手调用文件ADO连接数据库问题 我要在创建表时,表里的字段要从以列表框里读取。怎么做呀 谢谢!!!!!!!!!!!! 如何修改分割视图的窗口ID? CListCtrl,怎么让它只有垂直滚动条而没有水平滚动条呢? VARIANT内存越界 两个关于MEDIA的问题 单文档窗口中的广告条是如何制作的?类似于msn,并且具有超连接功能 可以给1000分,另开post 安装VS6的奇怪问题。 怎么调用com,简单的问题 VC 窗口最小化之后,窗口上的空间还有坐标吗? RS-232C 串口通讯
{
closesocket (sockRaw);
sockRaw= INVALID_SOCKET;
WSACleanup();
}
BOOL NetTst::Autotest(char far * szDestHost,int Ktest)
{
struct sockaddr_in dest,from;
char icmp_data[10], recvbuf[100];
unsigned int addr=0;
int fromlen = sizeof(from);
int timeout = 1000;//ms
sockRaw = socket (AF_INET,SOCK_RAW,IPPROTO_ICMP);
setsockopt(sockRaw,SOL_SOCKET,SO_RCVTIMEO,
(char*)&timeout,sizeof(timeout) );
memset(&dest,0,sizeof(dest));
dest.sin_family = AF_INET;
dest.sin_addr.s_addr= inet_addr(szDestHost);
memset(icmp_data,0,sizeof(icmp_data)); //clear icmp_data.
((IcmpHeader*)icmp_data)->i_type = 8; //ICMP_ECHO
((IcmpHeader*)icmp_data)->i_code = 0;
((IcmpHeader*)icmp_data)->i_id = (u_short)GetCurrentProcessId();
((IcmpHeader*)icmp_data)->i_seq = 0; for(int k=0; k<Ktest;k++ )
{
((IcmpHeader*)icmp_data)->i_cksum = 0;
((IcmpHeader*)icmp_data)->i_seq ++;
((IcmpHeader*)icmp_data)->i_cksum=checksum((u_short*)icmp_data,8);
sendto(sockRaw,icmp_data,8,0,(struct sockaddr*)&dest,sizeof(dest));
int bread=recvfrom(sockRaw,recvbuf,1024,0,(struct sockaddr*)&from,&fromlen);
if (bread == SOCKET_ERROR)
{
if(k==Ktest-1)
return FALSE ;
else
continue; //try again(3 times)
}
}
return TRUE; //no erros. }