如何用C语言编程得到本地主机得IP和主机名?

帮帮忙,请问如何用C语言编程得到本地主机得IP和主机名?其他语言就不要了。。... 帮帮忙,请问如何用C语言编程得到本地主机得IP和主机名?其他语言就不要了。。 展开
 我来答
物理公司的
推荐于2016-01-14 · TA获得超过5695个赞
知道大有可为答主
回答量:6105
采纳率:86%
帮助的人:1352万
展开全部
  1. c语言本身是不提供的。

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

  3. //列子

  4. #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(); 
    }
  5. 在Linux下
  6. #include <stdio.h>;  
    #include <sys/types.h>;  
    #include <sys/socket.h>;  
    #include <sys/ioctl.h>;  
    #include <netinet/in.h>;  
    #include <net/if.h>;  
    #include <net/if_arp.h>;  
    #include <arpa/inet.h>;  
    #include <errno.h>;  
          
    #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;  
    }
深圳市睿讯世纪科技有限公司
2019-11-12 广告
提到ip远程kvm切换器的企业,深圳市睿讯世纪科技有限公司可以了解一下。深圳市睿讯世纪科技有限公司是集研发、生产、销售和售后服务于一体的综合型电子科技企业,精益求精,始终如一地专注于提供数据中心(IDC)管理的应用解决方案。... 点击进入详情页
本回答由深圳市睿讯世纪科技有限公司提供
dos62
2008-01-08 · TA获得超过1660个赞
知道大有可为答主
回答量:1410
采纳率:0%
帮助的人:2155万
展开全部
#include<winsock.h>

gethostname,
gethostbyname,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式