获取IP地址

int sys_getIP(char *ip_addr)
{
  char ip_sys[] = {"ifconfig eth0 | grep inet | cut -d: -f2 | cut -d' ' -f1 > ipaddr.txt"};
  FILE *ip_fp = NULL;
  int error_sys;
  if((error_sys = system(ip_sys)) !=)
  {
    fprintf(stderr, "[get_eth] ip_sys : 0x%x\n", error_sys);
  }
  if ((ip_fp=fopen("ipaddr.txt", "r")) != NULL)
  {
    fgets(ip_addr, , ip_fp);
  }
  else
  {
    perror ("fread");
    return -;
  }
  fclose (ip_fp);
  unlink("ipaddr.txt");
  return ;
}

获取子网掩码

int sys_getMask(char *mask_addr)
{
  char ip_sys[] = {"ifconfig eth0 | grep Mask | cut -dk -f2 | cut -d: -f2 > /tmp/ipaddr.txt"};
  FILE *ip_fp = NULL;
  int error_sys;
  if((error_sys = system(ip_sys)) !=)
  {
    fprintf(stderr, "[get_eth] ip_sys : 0x%x\n", error_sys);
  }
  if ((ip_fp=fopen("/tmp/ipaddr.txt", "r")) != NULL)
  {
    fgets(mask_addr, , ip_fp);
  }
  else
  {
  perror ("fread");
  return -;
  }
  fclose (ip_fp);
  unlink("/tmp/ipaddr.txt");
  return ; }

获取网关

int sys_getGW(char *gw_addr)
{
  FILE *fp;
  char buf[];
  char cmd[];
  char *tmp;
  strcpy(cmd, "ip route");
  fp = popen(cmd, "r");
  if(NULL == fp)
  {
    perror("popen error");
    return "";
  }
  while(fgets(buf, sizeof(buf), fp) != NULL) //stroe output one line!!
  {
    tmp =buf;
    while(*tmp && isspace(*tmp))
    ++ tmp;
    if(strncmp(tmp, "default", strlen("default")) == )
    break;
  }
  sscanf(buf,"%*s%*s%s", gw_addr);
  printf("default gateway:%s\n", gw_addr);
  pclose(fp);
  return ;
}
获取mac地址
int sys_getHW(char *hw_addr)
{
char ip_sys[] = {"ifconfig | sed -e '/.*HWaddr /!d;s///;s/ .*//' > hwaddr.txt"};
FILE *ip_fp = NULL;
int error_sys;
if((error_sys = system(ip_sys)) !=)
{
fprintf(stderr, "[get_eth] ip_sys : 0x%x\n", error_sys);
}
if ((ip_fp=fopen("hwaddr.txt", "r")) != NULL)
{
fgets(hw_addr, , ip_fp);
}
else
{
perror ("fread");
return -;
}
fclose (ip_fp);
unlink("hwaddr.txt");
return ;
}
 

linux获取网络信息函数的更多相关文章

  1. linux 获取网络状态信息(Rtnetlink)

    一.Rtnetlink Rtnetlink 允许对内核路由表进行读和更改,它用于内核与各个子系统之间(路由子系统.IP地址.链接参数等)的通信, 用户空间可以通过NET_LINK_ROUTER soc ...

  2. Linux内核--网络栈实现分析(六)--应用层获取数据包(上)

    本文分析基于内核Linux 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7541907 更多请看专栏,地址http: ...

  3. 封装获取网络信息Linux—API类

    封装获取网络信息Linux—API类 封装好的库: #ifndef NETINFORMATION_H #define NETINFORMATION_H #include <netdb.h> ...

  4. Linux网络编程之"获取网络天气信息"

    需求分析: 1.需要Linux c 网络编程基础, 2.需要了解 http 协议 3.需要天气信息相关api(可以从阿里云上购买,很便宜的!) 4.需要cJSON解析库(因为获取到的天气信息一般是用c ...

  5. QT在linux下获取网络类型

    开发中遇到这样一个需求,需要判断当前网络的类型(wifi或者4G或者网线),在这里给大家一块分享下: 1.这里有一个linux指令:nmcli(大家自行百度即可) 2.nmcli device sta ...

  6. Qt linux获取cpu使用率、内存、网络收发速度、磁盘读写速度、磁盘剩余空间等

    #include "resource_minitor.h" #include "sys/statfs.h" resource_minitor::resource ...

  7. Linux 获取本机IP、MAC地址用法大全

    getifaddrs()和struct ifaddrs的使用,获取本机IP ifaddrs结构体定义如下: struct ifaddrs { struct ifaddrs *ifa_next; /* ...

  8. linux虚拟机网络连接模式 bridged, host-only, NAT

    最近安装了fedora9.0,却一直不能连接到外网,我用的是3G无线网卡上网的,起初以为是linux不支持3G无线方式的,可后来装了虚拟机ubuntu却可以上网,在后来用有ADSL网络连接的电脑安装f ...

  9. Linux C网络编程学习笔记

    Linux C网络编程总结报告 一.Linux C 网络编程知识介绍: 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端:(client) 在网络程序中, ...

随机推荐

  1. vue-地址插件 v-region

    demo地址:https://terryz.gitee.io/vue/#/region/demo

  2. Flask开发微电影网站(六)

    1. 后台管理登录功能实现 1.1 后台管理页面登录表单LoginForm 在app的admin目录下创建forms.py文件,用来保存admin蓝图中需要使用到的表单 from flask_wtf ...

  3. Python中的 @staticmethod@classmethod方法

    python类中有三种方法,常见的是实例方法,另外两种是staticmethod装饰的静态方法,和classmethod装饰的类方法. 1.对比 流畅的python里,用一个例子进行了对比: (1)两 ...

  4. xml文件sql中大于号、小于号、等号的转义问题

    1.用小于或小于等于的场景 代码1: <delete id="delOvertimeLog" parameterType="java.lang.Integer&qu ...

  5. 剑指offer数组3

    面试题11:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2 ...

  6. CSS之文本

    文本对齐方式 text-align left 把文本排列到左边. 默认值:由浏览器决定. right 把文本排列到右边. center 把文本排列到中间. justify 实现两端对齐文本效果. in ...

  7. 阿里云OSS 获取目录下所有文件

    public class AliyunHandle { public static string accessKeyId = "a1uI5xxxxxxxxxrP4H"; publi ...

  8. Java Spring Boot VS .NetCore (八) Java 注解 vs .NetCore Attribute

    Java Spring Boot VS .NetCore (一)来一个简单的 Hello World Java Spring Boot VS .NetCore (二)实现一个过滤器Filter Jav ...

  9. Barber paradox

    According to Wikipedia, the well known barber paradox states like this: The barber is the "one ...

  10. 网络编程-Mysql-1、数据库的启动关闭,创建数据库,表等基本操作

    启动服务端:sudo service mysql start 关闭服务端:suodo service mysql stop 重启服务端:suodo service mysql restart 连接数据 ...