ping脚本--无网不利
一、本文主要涉及的内容
l 预备知识
l 套路连招
二、预备知识
1、打印网络接口列表
下面这是原始的显示
我们想要的显示效果是这样的,如下所示:
eth0 lo
怎么办呢?
我们首先看到,eth0和lo这两串字符都是位于每一行的最开始的位置,大约是前10个字符的位置,所以我们可以使用列切割工具,切割每一行的前10个字符,也就是通过字符切割。我们用cut的时候经常用的是通过定界符切割,其实cut可以通过三种方式对文本进行切割,如下所示:
-b, --bytes=LIST #通过字节切
-c, --characters #通过字符切
-d, --delimiter=DELIM #通过定界符切
我们需要的是通过字符切,也就是通过-c选项,切出每一行的前10个字符,效果如下所示:
[root@centos6- ~]# ifconfig | cut -c - eth0 lo
如上所示,切完了之后,出现了一个大量的空行,我们只要把这些空行给压缩一下了不就好了吗?于是我们使用tr选项当中的-s选项:-s, --squeeze-repeats 挤压重复行,效果如下所示
结果是没有效果,空行并没有被挤压到一起,为什么?其实通过cut -A选项,也就是显示每一行里面所有的字符,可以看出来,这些行并不是真的空行,而是假的空行,因为行里面有空格,如下所示:
所以,我们要挤压重复行之前要先把每一行的里面空格给删除掉,如何删除呢?通过tr -d 即可删除,效果如下所示:
最后,我们再通过挤压重复行即可实现最终的效果,如下所示:
2、提取IP地址的小套路
第一种方法:最笨的方法,四条命令实现
ifconfig eth0 | sed -n 2p | cut -d: -f2 | cut -d' ' -f1 192.168.80.126
解释一下,先是只显示第二行,然后以冒号为分隔符显示第二列,最后以空格为分隔符显示第一行。
第二种方法:稍微高级一点,用了一个awk
ifconfig eth0 | awk -F: '{if(NR==2)print $2}' | cut -d' ' -f1 192.168.80.126
解释一下awk,-F以冒号为分隔符,{if(NR==2)print $2}的意思是对第二个进行操作,然后打印出第二列。
第三种方法:稍微高级一点,用了一个egrep,搞明白egerp之间要搞清楚通配符和扩展的通配符。
ifconfig eth0 | egrep -o "inet addr:[^ ]*" | grep -o "[0-9.]*" 192.168.80.126
解释一下,egrep -o "inet addr:[^ ]*"会打印出inet addr:192.168.80.126,-o是指定模式,模式以inet addr:作为初始,以非空字符作为序列,[^ ]*代表结束的模式以非空且任意字符结尾。在接下来的管道当中,只打印数字和点号的组合。
3、更改网卡的MAC地址
ifconfig eth0 hw ether 00:0C:29:73:B7:D8
有什么用呢?我们在突破ARP绑定或者做ARP欺骗的时候会用到,重启失效。
4、高速的ping工具:fping
安装:
>yum -y groupinstall "Development tools" wget http://fping.org/dist/fping-3.15.tar.gz > tar -zxvf fping-3.15.tar.gz > cd fping-3.15 > ./configure --prefix=/usr/local/fping #指定安装路径 > make > make install
配置:
vim /etc/profile #在最后面添加 export PATH=$PATH:/usr/local/fping/sbin > source /etc/profile
使用:
-a打印出所有的主机,-g指定一个范围。
fping -a 192.168.80.1/ -g >/dev/null #指定网段 192.168.80.1192.168.80.126192.168.80.254 fping -a 192.168.80.1 192.168.80.10 -g >/dev/null #手动指定范围
fping < ./test.txt #也可以从文件当中接收
三、套路连招
1、通过一个for循环和ping列出所有活动的主机
#!/bin/bash #列出所有活动的主机
其实这个脚本只是一个雏形,它还可以做很多的变动,比如将ping换成arping,这在KALI LINUX可以用到;再比如这是串行ping,用的时候比较慢,我们还可以做一个并行ping,我们后续会做一些讲解。
2、通过for循环和arping列出所有活动的主机
#!/bin/bash #列出所有活动的主机
这个脚本看起来与第一个没有什么太多的不同,但底层实现原理变化了,arping并不是使用ICMP协议,而是使用ARP协议,ARP的探测更有效、更彻底.
注意:arping在KALI LINUX用的比较多。
3、通过for循环、并行ping列出所有活动的主机
解释一下,第一个脚本是串行执行的,而这个脚本使用()&,括号里面的内容会被放入到后台进行执行。要想等到所有子进程结束之后再终止脚本,就得使用wait命令。将wait放在脚本最后,它就会一直等到所有的后台进程全部结束。
ping脚本--无网不利的更多相关文章
- Linux Shell -- 无网不利
这篇文章中我介绍几个非常实用的和网络相关的命令 一.ifconfig 这个命令在Windows下被"翻译为ipconfig",它用于显示网络接口,子网掩码等详细信息. 注:在每个系 ...
- 【整理】虚拟机和主机ping不通解决办法,虚拟机ping不通外网的解决方法
检查几个方面: 1.检查虚拟网卡有没有被禁用2.检查虚拟机与物理机是否在一个VMNet中3.检查虚拟机的IP地址与物理机对应的VMNet是否在一个网段4.检查虚拟机与物理机的防火墙是否允许PING, ...
- 【无网条件下】Linux系统、jdk、redis及集群、rabbitmq、nginx、weblogic和oracle安装及配置
本篇文章为原创,仅供参考使用,如果需要文章中提到的所有软件安装包和依赖包(即data),请以博客园邮箱联系获取链接. 准备资料 软件 主要软件包版本 路径 系统镜像 CentOS-6.10-x86_6 ...
- 油猴脚本 之 网教通直播评论记录抓取 v2.0
先放一个 <油猴脚本 之 网教通直播评论记录抓取>那篇文章的传送门 . 修复内容 将所有表情转为 [符号表情] 字样,而非删除: 修复被禁言用户读取异常,现在被禁言用户表示为 张三 [已禁 ...
- 无网环境安装docker之--rpm
总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm: --forc ...
- virtualbox -centos ping不通外网
centos上配置网卡自动获取ip 在路由器上配置了ip和mac绑定.ping不通外网.删除路由器上的静态mac绑定后OK,不明
- ping通网关 ping不能外网 DNS无法解析
###ping通网关 ping不能外网 DNS无法解析 客户上不了网 DNS解析不了 首先登陆机器 先查看IP 然后看dns是否正常 然后测试ping网关 ping外网 nslookup ...
- redhat ping不通外网的解决办法
ping自己和网关都能ping通就是无法ping通外网例如百度: [root@ocdp1 ~]# ping www.baidu.com ping: unknown host www.baidu.com ...
- 集群搭建:主机宽带拨号上网,虚拟机使用桥接模式,该如何ping通外网
首先介绍一下看这篇文章需要的基础.需要了解虚拟机的 虚拟机的三种网络模式,有Linux基础知识,这些都是前提.首先介绍一下我的环境:主机:win7虚拟机:VMware Workstation 10虚拟 ...
随机推荐
- [C2W1] Improving Deep Neural Networks : Practical aspects of Deep Learning
第一周:深度学习的实用层面(Practical aspects of Deep Learning) 训练,验证,测试集(Train / Dev / Test sets) 本周,我们将继续学习如何有效运 ...
- jQuery中的事件(七)
1. ready(fn), 当DOM载入就绪可以查询及操纵时绑定一个要执行的函数 这个方法纯粹是对向window.load事件注册事件的替代方法.通过使用这个方法,可以在DOM载入就绪能够读取并操纵时 ...
- SOA案例分析浅谈
SOA是英文 Service-Oriented Architecture 三个首字母单词的缩写,中文译为: 面向服务架构 ( SOA), SOA架构与 B/S . C/S 架构是目前最流行三种 Web ...
- 【洛谷4920】[WC2015] 未来程序(提答题)
点此看题面 大致题意: 把\(10\)个点的暴力代码和输入数据都给你,让你求出输出数据. 子任务\(1\) 第一个子任务自然是拿来送分用的... 容易发现就是一个快速乘的过程啊. 代码如下: #inc ...
- Aug.2019_Memory
转眼间这半个月的时光已经过去了,现在就像妈说的,生活又要回归正常了.尽管我一直不愿意去承认说前半个月的时光是一种不正常的生活,但有一点是我无法否认的,那就是那些人和那些事所带给我的…… 想想最初自己也 ...
- angular6 ngx-echarts 图表数据更新
最近在用angular写一个echarts图表,初始化赋值数据可以展示,但是重新获取数据以后,图表不会刷新. 后来发现了问题点所在, <div echarts class="demo- ...
- LeetCode 189:旋转数组 Rotate Array
公众号:爱写bug(ID:icodebugs) 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. Given an array, rotate the array to the ...
- 行为驱动:Cucumber + Java - 实现数据的参数化
1.什么是参数化 实际设计测试用例过程中,我们经常会用等价类.边界值这样的方法,针对一个功能进行测试数据上的测试,比如一个输入框,正向数据.逆向数据,非法输入等等 2.Cucumber的数据驱动 同上 ...
- 搭建rsyslog日志服务器
环境配置 centos7系统 client1:192.168.91.17 centos7系统 master:192.168.91.18 rsyslog客户端配置 1.rsyslog安装 yum ins ...
- vertx-jersey
允许在vert.x中创建JAX-RS Jersey资源. 入门 将vertx-jersey依赖项添加到您的项目中 <dependency> <groupId>com.eng ...