http://coolerfeng.blog.51cto.com/133059/58773

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://coolerfeng.blog.51cto.com/133059/58773
从DHCP的log中提取MAC和IP地址.
/var/lib/dhcpd/dhcp.lease中的一段记录如下:

lease 192.168.1.238 {
  starts 0 2007/11/25 11:57:41;
  ends 0 2007/11/25 17:57:41;
  tstp 0 2007/11/25 17:57:41;
  binding state free;
  hardware ethernet 00:0c:29:ac:4e:01;
  uid "\377eth0\000\001\000\001\016\354\015J\000\014)\254N\001";
}
# cat dhcpd.leases | egrep 'lease|hardware' | sed 's/lease//g' | sed 's/{//g' | sed 's/hardware ethernet//g
网友给的办法.测试了一下.重复的较多.主要是出现了.同一个MAC多次获取不同的IP地址的情况
在CU上找到更好的命令 [url]http://bbs.chinaunix.net/thread-980700-1-1.html[/url]
cat dhcpd.leases|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'

或者
awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}' dhcpd.leases
解释:
 RS 输入的记录他隔符 新行
ORS 输出的记录分隔符 新行
从头查找,遇到}结束,显示第2和第21个字段.ip在第2个字段.mac在第21个字段.
这样出来的结果基本符合我们的要求.
All so 
}192.168.1.250 00:0c:29:ac:4e:01; 
}192.168.1.238 00:0c:29:ac:4e:01; 
}192.168.1.241 00:0c:29:ac:4e:01; 
}192.168.1.246 00:0c:29:ac:4e:01; 
}192.168.1.248 00:0c:29:ac:4e:01; 
}192.168.1.251 00:0c:29:05:ac:8a; 
}192.168.1.253 00:0c:29:c2:b3:44; 
}192.168.1.247 00:0a:eb:f3:39:dd; 
}192.168.1.254 00:0c:29:c2:b3:44; 
}192.168.1.249 00:0c:29:a8:c7:0a; 
}192.168.1.245 00:0c:29:79:e2:aa; 
}192.168.1.244 00:0c:29:79:e2:aa; 
}192.168.1.243 00:0c:29:9d:e8:d8; 
}192.168.1.240 00:0c:29:a8:59:21; 
}192.168.1.242 00:0c:29:9d:e8:d8; 
}192.168.1.239 00:16:d3:b6:1b:d2; 
缺点就是第一行多了All so 每一行多了},也就是说我们要把这个结果再处理一下.
去掉第一行和最后一行,并把它排序.
改进一下命令,由于dhcpd.lease前面7行都是注释的内容,我们跳过这些行
tail -n +8 dhcpd.lease

从第8行开始显示dhcpd.lease文件

#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'
192.168.1.252 00:0c:29:ac:4e:01; 
}192.168.1.250 00:0c:29:ac:4e:01; 
}192.168.1.238 00:0c:29:ac:4e:01; 
}192.168.1.241 00:0c:29:ac:4e:01; 
}192.168.1.246 00:0c:29:ac:4e:01; 
}192.168.1.248 00:0c:29:ac:4e:01; 
}192.168.1.251 00:0c:29:05:ac:8a; 
}192.168.1.253 00:0c:29:c2:b3:44; 
}192.168.1.247 00:0a:eb:f3:39:dd; 
}192.168.1.254 00:0c:29:c2:b3:44; 
}192.168.1.249 00:0c:29:a8:c7:0a; 
}192.168.1.245 00:0c:29:79:e2:aa; 
}192.168.1.244 00:0c:29:79:e2:aa; 
}192.168.1.243 00:0c:29:9d:e8:d8; 
}192.168.1.240 00:0c:29:a8:59:21; 
}192.168.1.242 00:0c:29:9d:e8:d8; 
}192.168.1.239 00:16:d3:b6:1b:d2; 
现在还有该死的},我们用sed命令把它替换掉.
sed 's/}//g'

替换所有的}为空

#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'|sed 's/}//g'
192.168.1.252 00:0c:29:ac:4e:01; 
192.168.1.250 00:0c:29:ac:4e:01; 
192.168.1.238 00:0c:29:ac:4e:01; 
192.168.1.241 00:0c:29:ac:4e:01; 
192.168.1.246 00:0c:29:ac:4e:01; 
192.168.1.248 00:0c:29:ac:4e:01; 
192.168.1.251 00:0c:29:05:ac:8a; 
192.168.1.253 00:0c:29:c2:b3:44; 
192.168.1.247 00:0a:eb:f3:39:dd; 
192.168.1.254 00:0c:29:c2:b3:44; 
192.168.1.249 00:0c:29:a8:c7:0a; 
192.168.1.245 00:0c:29:79:e2:aa; 
192.168.1.244 00:0c:29:79:e2:aa; 
192.168.1.243 00:0c:29:9d:e8:d8; 
192.168.1.240 00:0c:29:a8:59:21; 
192.168.1.242 00:0c:29:9d:e8:d8; 
192.168.1.239 00:16:d3:b6:1b:d2;
我们再把结果排序一下,让它看上去舒服一些.
#tail -n +8 dhcpd.leases|less|awk 'BEGIN{RS=ORS="}"}{print $2,$21,"\n"}'|sed 's/}//g'|sort -n

192.168.1.238 00:0c:29:ac:4e:01; 
192.168.1.239 00:16:d3:b6:1b:d2; 
192.168.1.240 00:0c:29:a8:59:21; 
192.168.1.241 00:0c:29:ac:4e:01; 
192.168.1.242 00:0c:29:9d:e8:d8; 
192.168.1.243 00:0c:29:9d:e8:d8; 
192.168.1.244 00:0c:29:79:e2:aa; 
192.168.1.245 00:0c:29:79:e2:aa; 
192.168.1.246 00:0c:29:ac:4e:01; 
192.168.1.247 00:0a:eb:f3:39:dd; 
192.168.1.248 00:0c:29:ac:4e:01; 
192.168.1.249 00:0c:29:a8:c7:0a; 
192.168.1.250 00:0c:29:ac:4e:01; 
192.168.1.251 00:0c:29:05:ac:8a; 
192.168.1.252 00:0c:29:ac:4e:01; 
192.168.1.253 00:0c:29:c2:b3:44; 
192.168.1.254 00:0c:29:c2:b3:44;
如果只是单纯要IP或者MAC
列出IP
cat dhcpd.leases|grep -o '\<[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\>'
列出MAC
cat dhcpd.lease|grep -o '\<[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}:[0-9a-f]\{2\}\>' 

本文出自 “风吹云动” 博客,请务必保留此出处http://coolerfeng.blog.51cto.com/133059/58773

从dhcpd.lease中提取MAC和IP地址相关推荐

  1. qt准确获取本机mac和ip地址

    前言 公司服务器有多个mac地址,是用网上的代码获取时总是不准确,只能自己封装一下.qt通过QNetworkInterface类来获取网络接口的各种信息,我是通过解析QNetworkInterface ...

  2. 怎样才能快速批量绑定MAC与IP地址(图)

    怎样才能快速批量绑定MAC与IP地址(图) 一.问题的提出 校园网建成后,要求在服务器端把网内各工作站的MAC地址和分配的静态IP地址进行绑定,以方便统一管理,减小安全隐患.无论是在终端获取MAC地址 ...

  3. Shell脚本中获取本机ip地址,Linux获取本地ip地址

    在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...

  4. LinuxC下获取UDP包中的路由目的IP地址和头标识目的地址

    在接受到UDP包后,有时候我们需要根据所接收到得UDP包,获取它的路由目的IP地址和头标识目的地址. (一)主要的步骤: 在setsockopt中设置IP_PKTINFO,然后通过recvmsg来获取 ...

  5. ubuntu修改ip地址后如何保存_如何在 Ubuntu 中检查你的 IP 地址 | Linux 中国

    不知道你的 IP 地址是什么?以下是在 Ubuntu 和其他 Linux 发行版中检查 IP 地址的几种方法.-- Sergiu 不知道你的 IP 地址是什么?以下是在 Ubuntu 和其他 Linu ...

  6. 如何在Linux中找到您的IP地址

    无论我们是否知道,我们每天都在使用Internet协议(IP). 例如,每当您在Web浏览器中键入网站名称或搜索词时,它都会查询该URL(或搜索引擎)的IP地址,然后加载该网站. 让我们将IP地址分为 ...

  7. linux网络编程中端口号和ip地址转换方法

    0.字节序 网络字节序:是大端序,即:高字节放在低地址位置 比如:0x7F000101 对于一个整型,如上,我们看到的该形式,只是在大小端主机中存储的顺序是相反的. 网络序的存储方式是  7F 00 ...

  8. 前端Vue中获取本机ip地址

    前端Vue中获取本机ip地址 1.打开谷歌浏览器,地址栏输入chrome://flags,进入. 2.搜索Anonymize local IPs exposed by WebRTC,将其设置为Disa ...

  9. centos7 shell 获取ip_Linux Shell脚本中获取本机ip地址方法

    方法一:ifconfig -a ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "a ...

最新文章

  1. [原]LVM管理问题解决
  2. golang 面向对象编程
  3. Python教程:序列的增量赋值
  4. 欢迎使用Markdown
  5. liblbfgs简介
  6. java string isempty,java – String.isEmpty()和String.equals(“”)之间的区别
  7. mysql 字符串转时间yymmdd_mysql 日期和时间格式转换实现语句 | 很文博客
  8. cdev 结构体与字符设备的注册
  9. TeamCity构建依赖项
  10. 产品经理必须知道的一些知识:决定价格的四种因素
  11. bzoj 1058: [ZJOI2007]报表统计
  12. PSPNet-tensorflow实现并训练数据
  13. Python案例:通过城市区域代码查询天气
  14. 【杂谈】在职业生涯早期就要创造出优势
  15. 阿里云存储负责人吴结生:我经历的三个重大决策
  16. 【技术指标】MACD详解
  17. html鼠标移动到图片上显示冒泡框,Bootstrap 教程 - 提示冒泡(Tooltip)
  18. 2022-2028全球虚拟现实游戏头戴设备行业调研及趋势分析报告
  19. LT8522EX 是 Lontium 的矩阵开关芯片基于两路输入,输出 (VGA 和 HDMI)
  20. UDT长度的含义是什么?

热门文章

  1. 重装系统 WIN10(非 ghost版本)
  2. 人脸识别---排序测度特征(Ordinal Measures)
  3. 数据库管理工具V1.0
  4. 【电子秤方案】LCD口袋秤芯片方案
  5. 测试用例设计的八大要素及ANSI/IEEE 829标准和编写示例
  6. 推荐算法-欧几里得距离
  7. linux 修改文件所有者 root/普通用户
  8. Tornado基础知识
  9. Webcamera, Multithreading and VFW
  10. 一份关于IT学子的2020年度报告