取得本地的ip

WorldFocus 2004-10-26 09:12:33

void get_local_ip(char * chr_ip)
{
struct hostent *host;
char cHostName[256];
in_addr addr;
 gethostname(cHostName, sizeof(cHostName));
host = gethostbyname(cHostName);
memcpy(&addr, host->h_addr_list[0], sizeof(in_addr));
 chr_ip = inet_ntoa(addr);
}

上面的代码有什么问题,还有大家在取得本地的ip的时候,代码是如何写的.谢谢
...全文
149 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsohg 2004-10-26
  • 打赏
  • 举报
回复
gethostname(cHostName, sizeof(cHostName));

这句不对,cHostName为一个char指针,sizeof(cHostName)=4;

应该是:
gethostname(cHostName, 256);

daizh 2004-10-26
  • 打赏
  • 举报
回复
void get_local_ip(char * chr_ip)
{
struct hostent *host = NULL; //更改后
char cHostName[256];
struct in_addr addr;//更改后
 gethostname(cHostName, sizeof(cHostName));
host = gethostbyname(cHostName);
memcpy(&addr, host->h_addr_list[0], host->h_length);//更改后
 chr_ip = inet_ntoa(addr);
}
WorldFocus 2004-10-26
  • 打赏
  • 举报
回复
没有人回答我吗?
WorldFocus 2004-10-26
  • 打赏
  • 举报
回复
谢谢,我知道是循环读host->h_addr_list[i],我只要知道host->h_addr_list[0]就可以了,关键我想问一下我的代码有没有问题
  • 打赏
  • 举报
回复
我记得不太清,好像在获取ip地址的时候,是用一个循环读出的,我再给你查一下。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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