shell脚本之通过脚本获取本机IP地址

通过shell脚本获取主机ip地址,并从程序中读取执行shell脚本执行的结果

脚本命令及释义

#/bin/bash
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
  • ifconfig -a

用于类unix系统获取主机网络信息的指令;

  • grep inet

用于查找跟inet相关项

  • grep -v xxx

去除跟xxx相关项,-v表示反选

  • awk ‘{print $2}’

选择结果中以空格分隔的第二项

  • tr -d “addr:”

删除"ddr:"字符串

通过程序执行shell脚本并获取其输出的ip地址

执行shell脚本的三种方式

1.通过system函数调用
2.通过exec函数族调用
3.通过popen函数
由于前两种方法需要自己将函数调用shell脚本的输出重定向到另一个文件中,再读取文件内容获取结果,这里选择第三种方法,通过popen函数来执行shell脚本,获取到ip地址。关于popen函数的用法这里不再赘述,网上资料很多,需要注意的是popen打开的是单向的只读或只写的I/O流
代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MODE_IPV4 0//该模式返回IPV4地址
#define MODE_IPV6 1
#define IPV4 "ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d \"addr:\""      
#define IPV6 "ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet4|awk '{print $2}'|tr -d \"addr:\""
#define INFO printf

enum
{
   
	MODE_CMD = 0,    
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值