当前位置:首页 » 币种行情 » c语言获得eth0的ip地址

c语言获得eth0的ip地址

发布时间: 2022-09-28 10:55:29

❶ 如何用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;
    }

❷ 虚拟机eth0的IP地址是多少,要如何设置

首先VMnet0用于"桥接"不用设置IP地址
主机能上,虚拟机用"桥接",上不了网:
1、虚拟机不对,换个虚拟机
2、虚拟机内系统未装好,虚拟机内系统驱动未装好(win7)
VMware6.0.2太老了,下有两个
文章有虚拟机系统介绍及末尾有vm虚拟机 xp win7 中文绿色精简版下载地址:
http://hi..com/%D2%D7%B9%E3%B0%D7/blog/item/c5a5c5cc86c8811892457ecf.html

❸ linux c语言 获得网卡状态

是否动态获取IP(主要)?不知道呢
C调用内核API我还真不知道
可以用SHELL
ifconfig eth0|grep Mask|awk 'BEGIN{RS=":"}{print $1}' |grep -v 'inet'
列出分别是
IP
Bcast
Mask
自己看着办吧

❹ 请给出Linux中eth0的IP地址和广播地址的指令,需使用cut、awk、grep、sed指令。

第一种方法:使用grep和cut取值
第二种方法:使用grep和awk(默认分隔符为空格)取值
第三种方法:使用grep和awk(多分隔符)
第四种方法:使用sed和awk
第五种方法:使用grep和awk(多分隔符与加号+)
第六种方法:awk (分隔符及取行)
第七种方法:grep 网卡文件
第八种方法:head取行 awk分割

如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

❺ 求助在linux下用c语言取得双网卡的网关地址

两个网卡当然可以设置两个网关。 两种方法(redhat为例): 1、修改配置文件: 假设两个网卡名分别为eth0,eth1。可以分别修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0 及/etc/sysconfig/network-scripts/ifcfg-eth1

❻ linux 里通过想写一个c语言的文件 ,通过执行文件可以修改ifcfg-eth0中的IPADDR的值

//获取本机IP地址函数

view plain to clipboardprint?
01.QString GetLocalIp()
02.{
03.
04. int sock_get_ip;
05. char ipaddr[50];
06.
07. struct sockaddr_in *sin;
08. struct ifreq ifr_ip;
09.
10. if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)
11. {
12. printf("socket create failse...GetLocalIp!\n");
13. return "";
14. }
15.
16. memset(&ifr_ip, 0, sizeof(ifr_ip));
17. strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);
18.
19. if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )
20. {
21. return "";
22. }
23. sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;
24. strcpy(ipaddr,inet_ntoa(sin->sin_addr));
25.
26. printf("local ip:%s \n",ipaddr);
27. close( sock_get_ip );
28.
29. return QString( ipaddr );
30.}
QString GetLocalIp()
{

int sock_get_ip;
char ipaddr[50];

struct sockaddr_in *sin;
struct ifreq ifr_ip;

if ((sock_get_ip=socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("socket create failse...GetLocalIp!\n");
return "";
}

memset(&ifr_ip, 0, sizeof(ifr_ip));
strncpy(ifr_ip.ifr_name, "eth0", sizeof(ifr_ip.ifr_name) - 1);

if( ioctl( sock_get_ip, SIOCGIFADDR, &ifr_ip) < 0 )
{
return "";
}
sin = (struct sockaddr_in *)&ifr_ip.ifr_addr;
strcpy(ipaddr,inet_ntoa(sin->sin_addr));

printf("local ip:%s \n",ipaddr);
close( sock_get_ip );

return QString( ipaddr );
}

//修改本机IP地址的函数

int SetLocalIp( const char *ipaddr )
{

int sock_set_ip;

struct sockaddr_in sin_set_ip;
struct ifreq ifr_set_ip;

bzero( &ifr_set_ip,sizeof(ifr_set_ip));

if( ipaddr == NULL )
return -1;

if(sock_set_ip = socket( AF_INET, SOCK_STREAM, 0 ) == -1);
{
perror("socket create failse...SetLocalIp!\n");
return -1;
}

memset( &sin_set_ip, 0, sizeof(sin_set_ip));
strncpy(ifr_set_ip.ifr_name, "eth0", sizeof(ifr_set_ip.ifr_name)-1);

sin_set_ip.sin_family = AF_INET;
sin_set_ip.sin_addr.s_addr = inet_addr(ipaddr);
memcpy( &ifr_set_ip.ifr_addr, &sin_set_ip, sizeof(sin_set_ip));

if( ioctl( sock_set_ip, SIOCSIFADDR, &ifr_set_ip) < 0 )
{
perror( "Not setup interface\n");
return -1;
}

//设置激活标志
ifr_set_ip.ifr_flags |= IFF_UP |IFF_RUNNING;

//get the status of the device
if( ioctl( sock_set_ip, SIOCSIFFLAGS, &ifr_set_ip ) < 0 )
{
perror("SIOCSIFFLAGS");
return -1;
}

close( sock_set_ip );
return 0;
}

❼ 怎么用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;
}

❽ linux下如何查看某个网卡当前使用的IP。

1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。

❾ Linux下如何通过编程得到DNS ip地址和默认网关ip地址。(C 语言)

方案一:
你用C语言去读取/etc/resolv.conf,格式是namserver *.*.*.* 提取以下 就有DNS了
至于网关 你可以去读取/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0等文件,但是各个Linux系统可能少有差别。

方案二:
在C程序中调用exec函数,执行route命令,从返回的结果中提取网关
至于DNS 也可以通过dig localhost, 从结果中提取DNS 但是就没有方案一中快了

热点内容
币圈短视频营销 发布:2025-08-02 17:49:17 浏览:596
比特币跌了图 发布:2025-08-02 17:44:40 浏览:850
usdt在钱包里怎么表现 发布:2025-08-02 17:44:05 浏览:851
man区块链 发布:2025-08-02 17:37:16 浏览:767
居民端怎么退合约 发布:2025-08-02 17:37:16 浏览:90
doge狗动漫表情包下载 发布:2025-08-02 17:27:48 浏览:68
以太坊的币能取现吗 发布:2025-08-02 17:27:45 浏览:857
数字货币和比特币合约的区别 发布:2025-08-02 17:18:32 浏览:208
btc123注册账号 发布:2025-08-02 17:11:47 浏览:617
天下秀布局元宇宙 发布:2025-08-02 16:59:01 浏览:206