windows用c语言配置ip,怎么用C语言编程得到本地主机得IP和主机名?

c语言本身是不提供的。

在windows下使用系统命令或windows.h

//列子

#include "stdio.h" #include "conio.h" main() { int i,j; char ip[20]; char temp[100]; char ch='\0'; FILE *fp; system("ipconfig >d:\\myip.txt"); if ((fp=fopen("d:\\myip.txt","r"))==NULL) { printf("the file can not open:\nPress any key to exit:"); getch(); exit(1); } for (i=0;i<7;i++) {fgets(temp,80,fp); /*跳过一些行*/ /*printf("%s\n",temp); */} fgets(temp,80,fp); i=0;j=0; while (temp[i++]!=':') ; while (temp[i]!='\n') ip[j++]=temp[i++]; ip[j]=0; printf("IP=%s\n",ip); fclose(fp); system("del d:\\myip.txt"); getch(); }在Linux下#include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; #include ; #define ETH_NAME "eth0" int main() { int sock; struct sockaddr_in sin; struct ifreq ifr; sock = socket(AF_INET, SOCK_DGRAM, 0); if (sock == -1) { perror("socket"); return -1; } strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ); ifr.ifr_name[IFNAMSIZ - 1] = 0; if (ioctl(sock, SIOCGIFADDR, &ifr) < 0) { perror("ioctl"); return -1; } memcpy(&sin, &ifr.ifr_addr, sizeof(sin)); fprintf(stdout, "eth0: %s\n", inet_ntoa(sin.sin_addr)); return 0; }

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值