delphi如何可靠判断与外网连通?以前用的ping,担心被ping网站会屏蔽.整个InternetGetConnectedState外网断的,也显示局域网通

lclwcf 2012-03-30 10:20:49
求可靠的方法,谢谢各位.

网上查到的方法,大部分,只要局域网是通的,就判断通.

PING的方法会受服务器影响,所以也不放心.

...全文
429 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdchq 2012-03-30
  • 打赏
  • 举报
回复
用ping好,象163,百度这些都可以。或者ping你当地的dns服务器,这个是很难得变化的。
打开网址的方法有点慢,再小的页面,也比ping的数据大
我看见佛 2012-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
Delphi(Pascal) code
uses WinInet;//单元
if InternetGetConnectedState(nil, 0) = false then
begin
showmessage('网络异常,由于网络异常,程序掉线!');
end;
[/Quote]没看到标题后面,那就PING吧,或者用打开网址的方式,打开成功则通,失败则不通
山东蓝鸟贵薪 2012-03-30
  • 打赏
  • 举报
回复
case5166
你没有给出测试那个“网站”呀
比方说 www.163.com
山东蓝鸟贵薪 2012-03-30
  • 打赏
  • 举报
回复
case5166
你没有给出测试那个“网站”呀
比方说 www.163.com
我看见佛 2012-03-30
  • 打赏
  • 举报
回复
uses WinInet;//单元 
if InternetGetConnectedState(nil, 0) = false then
begin
showmessage('网络异常,由于网络异常,程序掉线!');
end;
山东蓝鸟贵薪 2012-03-30
  • 打赏
  • 举报
回复
你也可以评网站的呀
山东蓝鸟贵薪 2012-03-30
  • 打赏
  • 举报
回复


我再仔细看看
yxhua240 2012-03-30
  • 打赏
  • 举报
回复
InternetCheckConnection挺好用的呀。
zanwudaiqu 2012-03-30
  • 打赏
  • 举报
回复
是否可以用idhttp get或post 163里面的某个可反馈的链接,查看是否有反馈的数据流。
lclwcf 2012-03-30
  • 打赏
  • 举报
回复
谢谢各位,我是ping www.baidu.com
但是在我机器上有时候ping不通,我主要是担心服务器端把ping给关了.

function ISinternetok:Boolean;
var
IdIcmpClient: TIdIcmpClient;
begin
result:=False;
IdIcmpClient := TIdIcmpClient.Create(Self);
IdIcmpClient.ReceiveTimeout :=2000;
IdIcmpClient.Host :='www.baidu.com';
try
IdIcmpClient.Ping;
if IdIcmpClient.ReplyStatus.ReplyStatusType = rsecho then
result:=True;
except
end;
end;

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧