好文档 - 专业文书写作范文服务资料分享网站

五种查询Internet连接状态的方法

天下 分享 时间: 加入收藏 我要投稿 点赞

1. Powersock 控件法:

这种方法最简单, 利用 FastNet 页的 Powersock 控件的 LocalIP 属性即可判断: if(Powersock1->LocalIP==\:在线

else :离线 特点: [1] 判断连接状态, [2] 获得本地 IP。 2. 使用 URL.DLL的 InetlsOffline(0) 函数: Win2K URL.DLL存放在 ; Win9x: URL.DLL存放在 ;

用 GetSystemDirectory(...) 得到系统目录。 InetIsOffline(0) 返回值: TRUE 离线;FALSE:在线。 特点:判断连接状态。

3. WinSock 编程法:见程序

特点: [1] 判断连接状态; [2] 获得本地 IP 和主机名。

4. WinInet.DLL 的 InternetGetConnectedState(&dwFlag,0) 函数: 注意:为使用该函数,须在项目文件中加入: USELIB(\特点:获得较详的连接描述! 5. RASAPI32.DLL的 RasEnumConnections函数: 要使用该“枚举所有活动连接”函数,必须:

#include \。

若连接数 >0:本机当前已连入 Internet ; 否则: 本机当前未连入 Internet ; 源码如下,在[BCB5 + WIN2K +拨号上网]下通过(N字头的为菜单项): Powersock 控件法 ---

void __fastcall TForm1::N11Click(TObject *Sender) if(Powersock1->LocalIP==\

ShowMessage(味连接:\

else ShowMessage(\已连接: \

{ }

-------- URL.DLL 的 InetIsOffline 函数法 ----------------------- HINSTANCE hDLL;

typedef bool __stdcall(*FUN)(int); 定义 DLL函数指针 FUN FUN isOffLine;

void __fastcall TForm1::N21Click(TObject *Sender)

{

char Buffer[MAX_PATH];

GetSystemDirectory(Buffer,MAX_PATH);

hDLL=LoadLibrary((AnsiString(Buffer)+\

if(hDLL==NULL){ ShowMessage(\isOffLine=(FUN)GetProcAddress(hDLL,\

if(isOffLine==NULL){ ShowMessage(\return; }

if(!isOffLine(0)) ShowMessage(\已连接 \else ShowMessage(\未连接 \FreeLibrary(hDLL);

}

------- WinSock 法 ----------------------------------- void __fastcall TForm1::N31Click(TObject *Sender)

{

WORD wVersionRequested;

WSADATA wsaData; wVersionRequested=MAKEWORD(1,1); Start up WinSock WSAStartup(wVersionRequested,&wsaData);

hostent *p; char *p2; char s[128]; gethostname(s,128); Get the computer name p=gethostbyname(s);

p2=inet_ntoa(*((in_addr *)p->h_addr)); Get the IpAddress AnsiString LocationIP=p2; if(LocationIP==\ShowMessage(味连接:\

else ShowMessage(\已连接: \WSACleanup();

}

------- WinInet.DLL 的 InternetGetConnectedState 函数法 --------------- void __fastcall TForm1::N41Click(TObject *Sender)

{

StaticText1->Caption=\n=\

StaticText4->Caption=\n=\

StaticText7->Caption=\DWORD dwFlag;

InternetGetConnectedState(&dwFlag,0);

if(dwFlag & INTERNET_CONNECTION_MODEM) StaticText1->Caption=\DEMS 接

else StaticText1->Caption=\

if(dwFlag & INTERNET_CONNECTION_LAN) StaticText2->Caption=\连接 else StaticText2->Caption=\

if(dwFlag & INTERNET_CONNECTION_PROXY) StaticText3->Caption=\代 理连接 else StaticText3->Caption=\

----- 检查是否连接 ------------------------------

if(InternetGetConnectedState(NULL,0)) StaticText4->Caption=\在 线 else StaticText4->Caption=\

if(dwFlag & INTERNET_CONNECTION_OFFLINE) StaticText5->Caption=\离线。

注:不好用!

else StaticText5->Caption=\

if(dwFlag & INTERNET_RAS_INSTALLED) StaticText6->Caption=\else StaticText6->Caption=\

if(dwFlag & INTERNET_CONNECTION_CONFIGURED) StaticText7->Caption=\J

else StaticText7->Caption=\

}

----- RASAPI32.DLL 的 RasEnumConnections函数法 -------------------- #include \

void __fastcall TForm1::N51Click(TObject *Sender)

{

RASCONN RASco nn[256]活动连接数组 DWORD BuffSize; 数组所占内存大小;

DWORD ConnNu活动连接数目

RASconn[0].dwSize=sizeof(RASCONN); 必须指定一个连接 [数组元素 ]的内存大 小; BuffSize=sizeof(RASCONN)*256;

DWORD dwReturn=RasEnumConnections(RASconn,&BuffSize,&ConnNum); if(dwReturn==0)

{

if(ConnNum>0) ShowMessage(” 已连接。当前激活连接数:\else ShowMessage(\未连接。当前激活连接数: \

}

else ShowMessage(\函数失败! \

}

五种查询Internet连接状态的方法

1.Powersock控件法:这种方法最简单,利用FastNet页的Powersock控件的LocalIP属性即可判断:if(Powersock1->LocalIP==\:在线else:离线特点:[1]判断连接状态,[2]获得本地IP。2.使用URL.DLL的InetlsOffline(0)函数:Win2KURL
推荐度:
点击下载文档文档为doc格式
76h6o7rk1s7f1wl0k4bu3bj0w6iip0013mh
领取福利

微信扫码领取福利

微信扫码分享