『壹』 如何用c語言編程得到本地主機得IP和主機名
c語言本身是不提供的。
在windows下使用系統命令或windows.h
//列子
#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();
}在Linux下
#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",//