首页
社区
课程
招聘
[求助]判断已经联上互联网的最好方法?
发表于: 2008-6-20 22:31 6310

[求助]判断已经联上互联网的最好方法?

2008-6-20 22:31
6310
目前已经知道以下两种方法:

InternetGetConnectedState()//这个好象只要能和局域网连接,它就返回已连接。

InternetCheckConnection()//这个感觉有时候可靠,有时候不可靠。

不知道还有其他更好的方法判断已经和互联网连接(而不是局域网,因为有些网络需要认证)。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (14)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
ping www.baidu.com
应该非常可靠吧
2008-6-20 23:01
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么个ping 法,能否详细一点
2008-6-21 08:48
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
人家是做木马的啊。

不要帮他
2008-6-21 09:27
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
楼上的瞎说!
2008-6-21 12:31
0
雪    币: 231
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdk
6
新建一个进程,运行一个批处理
ping www.baidu.com >result.txt
分析一下结果,如果向下面这样,就表明ping通了

Pinging www.a.shifen.com [211.94.144.100] with 32 bytes of data:

Reply from 211.94.144.100: bytes=32 time=35ms TTL=51

Reply from 211.94.144.100: bytes=32 time=31ms TTL=51

Reply from 211.94.144.100: bytes=32 time=31ms TTL=51

Reply from 211.94.144.100: bytes=32 time=31ms TTL=51

Ping statistics for 211.94.144.100:

    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

    Minimum = 31ms, Maximum = 35ms, Average = 32ms
2008-6-21 13:00
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
// 等待的时间比较长 17s 左右
// 刚断网缓冲里可能有,所以这时有点问题。清空缓冲?
// 我想这个方法是比较SB的

#include <iostream>
using namespace std;

#pragma comment(lib, "ws2_32.lib")
#include <Winsock2.h>

BOOL Host2IP(char *szName, char *szIP)
{
        WSAData wsaData;
        hostent *remoteHost;
        char lpHost[256];
        BOOL bRetval = false;

        WSAStartup(0X0101, &wsaData);
        gethostname(lpHost, sizeof(lpHost));
        strcpy(lpHost, szName);
        remoteHost = gethostbyname(lpHost);

        if(remoteHost != NULL && remoteHost->h_addr_list != NULL)
                bRetval = true;
        WSACleanup();
        return bRetval;
}

int main()
{
        char szName[256] = "www.baidu.com";
        char szIP[256];

        if(Host2IP(szName, szIP))
                cout << "OK" << endl;
        else
                cout << "NO" << endl;

        return 0;
}
2008-6-21 21:36
0
雪    币: 101
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
判断连网不一定就是做木马啊.
//检查网络是否连接
function GetOnlineStatus: Boolean;
var
  ConTypes: Integer;
begin
  ConTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
  if (InternetGetConnectedState(@ConTypes, 0) = False) then
    Result := False
  else
    Result := True;
end;
2008-6-22 10:17
0
雪    币: 1844
活跃值: (35)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
9
什么都是假的,隐藏得有力量才是真的,不然给你一个假信息,告诉你连上了 USA 总部都可以
2008-6-22 11:14
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
谢谢楼上各位

问题好未解决。望各位出奇招!
2008-6-22 21:51
0
雪    币: 82
活跃值: (271)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
查找是否有QQ.exe这个进程或者他的聊天窗体
2008-6-23 10:48
0
雪    币: 160
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
用connect連接一下必定長開架網頁
如果返回值係岩架咁咪即係有上網啦
2008-6-23 12:20
0
雪    币: 241
活跃值: (38)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
这里面的家伙都忒有才鸟
没连网的话,gethostbyname会出错的
2008-7-24 13:35
0
雪    币: 372
活跃值: (31)
能力值: ( LV12,RANK:410 )
在线值:
发帖
回帖
粉丝
14
function  IsInternet:  Boolean;  
begin  
   if  InternetCheckConnection('www.microsoft.com',  1,  0)  then  
       Result  :=  True  
   else  
       Result  :=  False;  
end;
2008-7-24 13:52
0
雪    币: 503
活跃值: (80)
能力值: (RANK:280 )
在线值:
发帖
回帖
粉丝
15
真要欺骗本地开个http服务器+host或是改ip就搞定了
所以也没必要浪费太多时间在如何确定是否连在互联网上,把后续的代码写好远比这一步重要
2008-7-24 14:57
0
游客
登录 | 注册 方可回帖
返回
//