网络编程的问题,请教一下高手们~

发布于 2022-07-20 21:47:08 字数 139 浏览 11 评论 2

我现在写一个程序,其中必须先获取本机ip地址.本来是想用gethostname.再通过hostname来获取ip的,当在测试时候才知道.有时候etc/hosts不可用.这样就会出错.所以想请教一下还有什么好办法可以获取到本机的ip地址呢~~~~
期盼大虾的帮助~~~

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

遗弃M 2022-07-23 07:32:56

不错的建议,此方行得通
谢谢

我很OK 2022-07-22 13:58:15
  1. char * get_dev_ip(char *ip,char *ethname)
  2. {
  3.     struct ifreq ifreq;
  4.     struct protoent *pro;
  5.     struct sockaddr_in ipaddr;
  6.     int sockfd;
  7.     pro=getprotobyname("tcp");
  8.     if((sockfd=socket(AF_INET,SOCK_STREAM,pro->p_proto))<0)
  9.     {
  10.         perror("socket");
  11.         return ;
  12.     }
  13.     strcpy(ifreq.ifr_name,ethname);
  14.     if(ioctl(sockfd,SIOCGIFADDR,&ifreq)<0)
  15.     {
  16.         perror("ioctl");
  17.         return ;
  18.     }
  19.     bcopy(&ifreq.ifr_addr,&ipaddr,sizeof(ifreq.ifr_addr));
  20.     strcpy(ip,inet_ntoa(ipaddr.sin_addr));
  21.     return ip;
  22. }

复制代码

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文