當前位置:首頁 » 幣種行情 » 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 但是就沒有方案一中快了

熱點內容
手機里農場挖礦 發布:2024-04-29 08:11:13 瀏覽:614
杭州上城區比特幣 發布:2024-04-29 07:42:10 瀏覽:912
是什麼使區塊鏈防篡改 發布:2024-04-29 07:33:41 瀏覽:762
去社保中心拉社保單要本人嗎 發布:2024-04-29 07:33:00 瀏覽:579
2018區塊鏈技術突破 發布:2024-04-29 07:32:36 瀏覽:518
冒險與挖礦新豐臣秀吉 發布:2024-04-29 06:48:09 瀏覽:623
com與eth 發布:2024-04-29 06:37:57 瀏覽:426
vr元宇宙游戲有哪個 發布:2024-04-29 06:06:11 瀏覽:459
ethpos模式後怎麼獲得幣 發布:2024-04-29 04:19:59 瀏覽:172
ETH已選擇資產名 發布:2024-04-29 04:12:30 瀏覽:651