获取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. ApowerMirror投屏(手机投屏电脑、电脑投屏到手机)

    使用步骤    1. 亲测 使用Apowersoft ApowerMirror v1.4.2.zip版本      2.Apowersoft ApowerMirror v1.4.2.zip 解压安装 ...

  2. noj 算法 八数码问题

    描述 在九宫格里放在1到8共8个数字还有一个是空格,与空格相邻的数字可以移动到空格的位置,问给定的状态最少需要几步能到达目标状态(用0表示空格):1 2 34 5 67 8 0   输入 输入一个给定 ...

  3. Linux超级守护进程——xinetd

    Linux超级守护进程--xinetd 一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务 ...

  4. intellij idea创建maven项目

    1.安装好JDK,Tomcat,安装好maven: 2.配置maven全局变量:file->Other Settings ->Default Settings->Build,Exec ...

  5. 使用Java API操作HDFS文件系统

    使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...

  6. Fiddler 抓包设置

    手机抓包设置 一:配置Fiddler参数 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTTPS CONNECTs ...

  7. ansible的lookup

    lookup路径: /usr/lib/python2.7/site-packages/ansible/plugins/lookup 所有的lookup插件列表cartesian.py dnstxt.p ...

  8. linux基础命令学习笔记(一)

    2019年4月1日: “目录” = “文件夹” 常用命令(一): 1.ls: list 列表,默认当前文件夹的文件和目录 linux:命令+选项+参数 ls -l:长输出,列出文件的详细信息 - rw ...

  9. 解决 RecyclerView 在Android Studio已经导入情况下还无法实例引用问题

    系统:Windows 10 IDE::android studio 1. 问题:RecyclerView 在Android Studio已经导入情况下还无法实例引用问题 由于RecyclerView是 ...

  10. James Munkres Topology: Theorem 19.6

    Theorem 19.6 Let \(f: A \rightarrow \prod_{\alpha \in J} X_{\alpha}\) be given by the equation \[ f( ...