如何在获取计算机的网关地址?

shinew 2006-05-06 09:19:34
有若干个小型局域网(分散于很多地方),地址各不相同,想利用c++buider,在计算机上运行获取局域网内的网关地址?
另外如果获得了该网关地址,如何实现ping的功能,即检查本地计算机到网关是否畅通。
谢谢!
...全文
738 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2006-05-09
  • 打赏
  • 举报
回复
只要邻近的网关吗?那可以调用ipconfig来完成啊
shinew 2006-05-09
  • 打赏
  • 举报
回复
在不同的局域网内运行该程序,只显示本局域网的网关,相当于用户在自己的局域网内的机器上作ipconfig /all,但很多用户不会也不愿意做ipconfig/all。
to:xpdavis 前两天在做别的东西,见谅啊。
铖邑 2006-05-09
  • 打赏
  • 举报
回复
我想也是这样的。楼主你发帖以后,怎么这么不积极啊?
shinew 2006-05-09
  • 打赏
  • 举报
回复
各位我没有说清楚,是这样的
有若干个局域网 分散于不同的地方,每个局域网都有自己的固定ip 和网关,不同的子网,通过路由器和我这里相连,当然各个局域网的网关地址不同,每个局域网的用户并不全部会做ipconfig /all
所以现在要编写一个程序,运行后显示出各个局域网的网关,然后可以ping其网关,判断是否畅通。
Beginner_mine 2006-05-09
  • 打赏
  • 举报
回复
以前写过的程序..希望对你有点帮助:

在当前目录下建立一个BAT文件。例如:GetGateWay.bat,编辑写入ipconfig > GateWay.ini

/*函数名:GetGateWay()
功能:取得当前网关
*/
void __fastcall TFrmMain::GetGateWay()
{


String sFileName = ".\\GateWay.ini"; //保存网络信息的文件名。

AnsiString temp; //读取本地网关信息
TStringList *stream;
stream = new TStringList;
try
{
stream->LoadFromFile(sFileName);

for (int i=0;i<stream->Count;i++)
{
temp=stream->Strings[i];
if(temp.Pos("Default Gateway")>0 )
{
GateWay =temp; //GateWay 定义部分未给出..最后值即为网关
int ii = GateWay.Pos(":");
GateWay= GateWay.SubString(ii+1,GateWay.Length()-ii).Trim();
break;
}
}
}
__finally
{
delete stream;
}
}

//自动批处理文件,取得网络信息,并存入GateWay.ini文件中
WinExec("GetGateWay.bat",SW_HIDE);
铖邑 2006-05-08
  • 打赏
  • 举报
回复
算了,还是请楼主来说明清楚吧。

楼主好象失踪了???
铖邑 2006-05-08
  • 打赏
  • 举报
回复
有若干个小型局域网(分散于很多地方),地址各不相同
pp616 2006-05-08
  • 打赏
  • 举报
回复
哪句话里有“所有”的字眼或意思???
铖邑 2006-05-08
  • 打赏
  • 举报
回复
ipconfig只能取缺省网关而已,也就是跟本机最邻近的网关。问题没有那么简单,楼主要的是一个网络里的所有网关地址。
pp616 2006-05-08
  • 打赏
  • 举报
回复
ipconfig 里有
Default Gateway . . . . . . . . . : 192.168.0.1
取出来ping 一下就好了。
铖邑 2006-05-08
  • 打赏
  • 举报
回复
这个比较难做。
ping比较容易实现

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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