大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 五种查询Internet连接状态[含IP]的方法

五种查询Internet连接状态[含IP]的方法

时间: 2021-07-31 作者:daque

1.powersock 控件法:这种本领最大略,运用fastnet页的 powersock控件的localip属性即可确定:if(powersock1->localip=="127.0.0.1"):在线else:离线特性:[1]确定贯穿状况,[2]赢得当地ip。2.运用url.dll的inetisoffline(0) 因变量:win2k:url.dll寄存在\system32\;win9x:url.dll寄存在\system\;用getsystemdirectory(...)获得体例目次。inetisoffline(0)归来值:true: 离线; false:在线。特性:确定贯穿状况。3.winsock编制程序法:见步调特性:[1]确定贯穿状况;[2]赢得当地ip和长机名。4.wininet.dll的internetgetconnectedstate(&dwflag,0)因变量:提防:为运用该因变量,须在名目文献中介入:uselib("wininet.lib")特性:赢得较详的贯穿刻画!5.rasapi32.dll的rasenumconnections因变量:要运用该“列举一切震动贯穿”因变量,必需:#include "ras.h"。 若贯穿数>0:本机暂时已连入internet;要不: 本机暂时未连入internet;源码如次,在[bcb5 + win2k + 拨号上钩]下经过(n字根的为菜单项):-------------powersock控件法-----------------------------------------void __fastcall tform1::n11click(tobject *sender) {if(powersock1->localip=="127.0.0.1")showmessage("未贯穿:"+powersock1->localip);else showmessage("已贯穿:"+powersock1->localip);} -------------url.dll的inetisoffline因变量法----------------------------hinstance hdll;typedef bool __stdcall(*fun)(int); 设置dll因变量南针funfun isoffline; void __fastcall tform1::n21click(tobject *sender){char buffer[max_path];getsystemdirectory(buffer,max_path);hdll=loadlibrary((ansistring(buffer)+"\\url.dll").c_str());if(hdll==null){ showmessage("cannot load url.dll! return... "); return; }isoffline=(fun)getprocaddress(hdll,"inetisoffline");if(isoffline==null){ showmessage("cannot load inetisoffline(int), return..."); 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 winsockwsastartup(wversionrequested,&wsadata);-----------------------------------------hostent *p; char *p2; char s[128];gethostname(s,128); get the computer namep=gethostbyname(s);p2=inet_ntoa(*((in_addr *)p->h_addr)); get the ipaddress-----------------------------------------ansistring locationip=p2;if(locationip=="127.0.0.1")showmessage("未贯穿:"+locationip);else showmessage("已贯穿:"+locationip);wsacleanup();} -----------wininet.dll的internetgetconnectedstate因变量法----------------void __fastcall tform1::n41click(tobject *sender) {statictext1->caption=""; statictext2->caption=""; statictext3->caption="";statictext4->caption=""; statictext5->caption=""; statictext6->caption="";statictext7->caption="";dword dwflag;internetgetconnectedstate(&dwflag,0);if(dwflag & internet_connection_modem) statictext1->caption="yes"; modem贯穿else statictext1->caption="no";if(dwflag & internet_connection_lan) statictext2->caption="yes"; lan贯穿else statictext2->caption="no";if(dwflag & internet_connection_proxy) statictext3->caption="yes"; 代劳贯穿else statictext3->caption="no";---------查看能否贯穿-------------------------------------------if(internetgetconnectedstate(null,0)) statictext4->caption="yes"; 在线else statictext4->caption="no";if(dwflag & internet_connection_offline) statictext5->caption="yes";//离线。注:不好用!else statictext5->caption="no";----------------------------------------------------------------if(dwflag & internet_ras_installed) statictext6->caption="yes";else statictext6->caption="no";if(dwflag & internet_connection_configured) statictext7->caption="yes";else statictext7->caption="no";}----------rasapi32.dll的rasenumconnections因变量法---------------------------#include "ras.h"void __fastcall tform1::n51click(tobject *sender) {rasconn rasconn[256]; 震动贯穿数组dword buffsize; 数组所占外存巨细;dword connnum; 震动贯穿数量rasconn[0].dwsize=sizeof(rasconn); 必需指定一个贯穿[数组元素]的外存巨细;buffsize=sizeof(rasconn)*256;dword dwreturn=rasenumconnections(rasconn,&buffsize,&connnum);if(dwreturn==0){if(connnum>0) showmessage("已贯穿。暂时激活贯穿数:"+ansistring(connnum));else showmessage("未贯穿。暂时激活贯穿数:"+ansistring(connnum));}else showmessage("rasenumconnections因变量波折!");} 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.