关于显示本地IP的问题

superrx 2003-03-08 11:44:14
我要高毕业设计,搞个分布式系统,为了显示本地IP加入了如下代码,
在家调试,成功!顺利获得最外层的IP,(使用ADSL、视讯)但在学校就出错了。
(有外部IP的校园网)。

同是这段代码,在同学搞的分布式系统却没有同样的情况


代码如下:
WSAData wsaData;
if (WSAStartup(MAKEWORD(1,1),&wsaData)!=0)//初始化WINSOCK调用
{
MessageBox(NULL,"Wrong WinSock Version","Error",MB_OK);
return ;
}

char HostName[80];
LPHOSTENT lpHostEnt;
struct in_addr addr[5];
//本程序假设主机不是多宿主机,即最多只有
// 一块网卡和一个动态IP
for (int i=0; i<2; i++)
memset(&addr[i],0,sizeof(in_addr));
//对in_addr结构清0,以利后面填写

// 得到本主机名
if(gethostname(HostName,sizeof(HostName))==SOCKET_ERROR)
{
MessageBox(NULL,"Can't getting local host name.","Error",MB_OK);
return ;
}
Edit11->Text = HostName;
lpHostEnt=gethostbyname(HostName);//利用得到的主机名去获得主机结构
if (!lpHostEnt)
{
MessageBox(NULL,"Yow! Bad host lookup.","Error",MB_OK);
return ;
}

for (int i=0; lpHostEnt->h_addr_list[i]!=0; i++)
//从主机地址表中得到IP地址
{
memcpy(&addr[i],lpHostEnt->h_addr_list[i],sizeof(in_addr));
Edit12->Text = inet_ntoa(addr[i]);
}
WSACleanup(); //释放WINSOCK调用
...全文
67 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
meCAD 2003-03-08
  • 打赏
  • 举报
回复
帮人UP赚分

1,317

社区成员

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

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