當前位置:首頁 » 編程語言 » c語言調用本機ip
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言調用本機ip

發布時間: 2023-08-25 08:53:50

『壹』 如何用c語言編程得到本地主機得IP和主機名

  1. c語言本身是不提供的。

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

  3. //列子

  4. #include"stdio.h"
    #include"conio.h"
    main()
    {
    inti,j;
    charip[20];
    chartemp[100];
    charch='';
    FILE*fp;
    system("ipconfig>d:\myip.txt");
    if((fp=fopen("d:\myip.txt","r"))==NULL)
    {
    printf("thefilecannotopen: Pressanykeytoexit:");
    getch();
    exit(1);
    }
    for(i=0;i<7;i++)
    {fgets(temp,80,fp);/*跳過一些行*/
    /*printf("%s ",temp);*/}
    fgets(temp,80,fp);
    i=0;j=0;
    while(temp[i++]!=':')
    ;
    while(temp[i]!=' ')
    ip[j++]=temp[i++];
    ip[j]=0;
    printf("IP=%s ",ip);
    fclose(fp);
    system("deld:\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>;

    #defineETH_NAME"eth0"

    intmain()
    {
    intsock;
    structsockaddr_insin;
    structifreqifr;

    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 ",inet_ntoa(sin.sin_addr));

    return0;
    }

『貳』 編程:C語言編程取得本機ip地址

取本地地址
可以從「開始」-「程序」-「附件」-「命令提示符」裡面輸入英文「ipconfig/all」就可得到IP地址了,LINUX我也不太懂了。

『叄』 請問 c語言怎樣獲取計算機ip地址啊

struct in_addr addr;
hostent *pHost = ::gethostbyname("localhost");//在此寫入你自己電腦主機名字
switch (pHost->h_addrtype) {
case AF_INET:
printf("internet網路地址類型(AF_INET)\n");
break;
case AF_INET6:
printf("internet網路地址類型(AF_INET)\n");
break;
case AF_NETBIOS:
printf("netbios網路地址類型(AF_NETBIOS)\n");
break;
default:
printf("其它地址類型 %d\n", pHost->h_addrtype);
break;
}
printf("\t地址長度: %d(位元組)\n", pHost->h_length);
addr.s_addr = *(u_long *) pHost->h_addr_list[0];
printf("\t第一個IP地址為: %s\n", inet_ntoa(addr));

『肆』 c語言調用本機ip地址時如何定義gethostname函數

函數聲明為

int PASCAL FAR gethostname(char FAR *name, int namelen);

所以 , 應該是

charname[65];
intret=gethostname(name,sizeof(name));
if(ret==0)printf("nameis%s ",name);
elseprintf("getfailedret=%d ",ret);

『伍』 怎麼用C語言去設置本地IP地址

#include<iostream>
usingnamespacestd;
#include<stdio.h>
#include<sys/socket.h>
#include<arpa/inet.h>
#include<netinet/in.h>
#include<errno.h>
#include<string.h>
#include<stdlib.h>
voidsetIPv4(char*ip,char*gw,char*netmask){
charcmd[128];
//networkinterface
charnwkInf[5]="eth0";

//linkdowncommandinLinux
sprintf(cmd,"iplinkset%sdown",nwkInf);
system(cmd);


memset(cmd,0x00,64);
//commandtosetipaddress,netmask
sprintf(cmd,"ifconfig%s%snetmask%s",nwkInf,ip,netmask);
system(cmd);
printf(" cmd:%s",cmd);fflush(stdout);
memset(cmd,0X00,64);

//commandtosetgateway
sprintf(cmd,"routeadddefaultgw%s%s",gw,nwkInf);
system(cmd);

memset(cmd,0X00,64);
//linkupcommand
sprintf(cmd,"iplinkset%sup",nwkInf);
system(cmd);
}
intmain(){
//
setIPv4("192.168.10.267","192.168.10.1","255.255.255.0");
return0;
}

『陸』 怎麼用C語言獲取Linux系統的網卡IP地址

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<net/if.h>
#include<netdb.h>
#include<arpa/inet.h>
#include<sys/ioctl.h>

//獲取地址
//返回IP地址字元串
intgetlocalip(char*outip)
{
inti=0;
intsockfd;
structifconfifconf;
charbuf=(char)malloc(512);
structifreq*ifreq;
char*ip;

//初始化ifconf
ifconf.ifc_len=512;
ifconf.ifc_buf=buf;

if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)
{
return-1;
}
ioctl(sockfd,SIOCGIFCONF,&ifconf);//獲取所有介面信息
close(sockfd);
//接下來一個一個的獲取IP地址
ifreq=(structifreq*)buf;
i=ifconf.ifc_len/sizeof(structifreq);
char*pos=outip;
intcount;
for(count=0;(count<5&&i>0);i--)
{
ip=inet_ntoa(((structsockaddr_in*)&(ifreq->ifr_addr))->sin_addr);

if(strncmp(ip,"127.0.0.1",3)==0)//排除127.x.x.x,繼續下一個
{
ifreq++;
continue;
}else
{
printf("%s ",ip);
strcpy(pos,ip);
intlen=strlen(ip);
pos=' ';
pos+=len+1;
count++;
ifreq++;
}
}
free(buf);
return0;
}
//——————————-函數的調用方式————————————-
intmain(intargc,char**argv)
{
charip={'*'};

if(getlocalip(ip)==0)
{
printf("本機IP地址是:%s ",ip);
}
else
{
printf("無法獲取本機IP地址");
}
return0;
}

『柒』 如何用C語言設置本地IP地址

#include #include #include #define N 50 typedef struct { char eth[N], ip[N], netmasks[20], gw[N], dns[N], tag[N]; }data; int main() { data list[]= { { "本地連接", "222.22.65.173", //IP地址 "255.255.255.128",//