在 shell 脚本获取 ip、数字转换等网络操作
在 shell 脚本获取 ip、数字转换等网络操作
ip 和数字的相互转换
ip转换为数字 ::
function ip2num() {
local ip=$1
local a=$(echo $ip | awk -F '.' '{print $1}')
local b=$(echo $ip | awk -F '.' '{print $2}')
local c=$(echo $ip | awk -F '.' '{print $3}')
local d=$(echo $ip | awk -F '.' '{print $4}')
echo "$(( (a<<24)+(b<<16)+(c<<8)+d ))"
}
数字转换为 ip ::
function num2ip() {
local num=$1
local a=$((num>>24))
local b=$((num>>16&0xff))
local c=$((num>>8&0xff))
local d=$((num&0xff))
echo "$a.$b.$c.$d"
}
CIDR 前缀转换为子网掩码数字 ::
function prefix2masknum() {
local prefix=$1
local i=31
local k=0
local mask=0
while [ $k -lt $prefix ]; do
bit=$(( 1 << (i-k) ))
mask=$(( mask+bit ))
k=$(( k+1 ))
done
echo $mask
}
然后可用
num2ip将子网掩码数字转换为 ip 形式num2ip $(prefix2masknum <CIDR 前缀长度,如24>)
从网卡获取第一个 ipv4 地址和 CIDR 前缀
获取第一个 ipv4 地址,CIDR 前缀
function get_ip() {
local dev=$1
local ip_cidr=$(ip addr show dev $dev | grep "inet[[:blank:]]") |\
head -n 1 | awk '{print $2}'
echo ${ip_cidr%/*}
} function get_prefix() {
local dev=$1
local ip_cidr=$(ip addr show dev $dev | grep "inet[[:blank:]]") |\
head -n 1 | awk '{print $2}'
echo ${ip_cidr#*/}
}
在 shell 脚本获取 ip、数字转换等网络操作的更多相关文章
- 调用shell脚本,IP处理
//调用shell脚本,IP处理 package com.letv.sdns.web.utils; import org.slf4j.Logger; import org.slf4j.LoggerFa ...
- 关于使用java执行shell脚本获取centos的硬盘序列号和mac地址
1.获取硬盘序列号: 新建shell脚本文件: identifier.sh, 内容为: diskdata=`fdisk -l` diskleft=${diskdata#*"identifie ...
- shell脚本获取mysql插入数据自增长id的值
shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...
- 014-交互式Shell和shell脚本获取进程 pid
Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程 1.交互式 Bash Shell 获取进程 pid 在已知进程名(name)的前提下,交互式 ...
- shell脚本-获取时间
获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...
- 通过shell脚本获取日期,并赋给变量
通过shell获取当前8位日期,并赋给变量,并且使用变量作为文件名,建立文件夹 代码如下: ls_date=`date +%Y%m%d` mkdir ${ls_date} 上面两句代码虽然简单 但是在 ...
- shell脚本获取网页快照并生成缩略图
获取网页快照并生成缩略图可分两步进行: 1.获取网页快照 2.生成缩略图 获取网页快照 这里我们用 phantomjs 来实现.关于 phantomjs 的详细用法可参考官方网站. 1.安装 我的环境 ...
- [Python陷阱]os.system调用shell脚本获取返回值
当前有shell个脚本/tmp/test.sh,内容如下: #!/bin/bashexit 11 使用Python的os.system调用,获取返回值是: >>> ret=os.sy ...
- zabbix3.0.4-agent通过shell脚本获取mysql数据库登陆用户
zabbix3.0.4获取数据库登陆用户趋势详解 主要思路: 通过zabbix客户端shell脚本mysql命令取出用户表中的数据将结果反馈给zabbix,画出趋势图 1.修改zabbix-agent ...
随机推荐
- IBatis和Hibernate区别
1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myB ...
- 3.OGG函数
1.COMPUTE 一般用来计算目标端和源段的字段值,使用这个函数计算出目标端对应列想要的值 Use the @COMPUTE function to return the value of ...
- 圣诞老人去哪?Power BI告诉你
随着圣诞节的来临,微软的Power BI团队使用Power BI来回答大家一直以来所关心的问题:圣诞老人去哪? 要回答这个问题,来自社交网络的数据是最合适不过的了.于是Power BI团队用以下关键字 ...
- Maven入门指南① :Maven 快速入门及简单使用
原文链接:http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html 开发环境 MyEclipse 2014 JDK 1.8 M ...
- iOS ---不一样的NSLog打印(精准打印)
在iOS开发过程中,调试是很重要的过程,而除了各种断点调试(普通断点.条件断点.全局断点)之外,似乎NSLog是我们调试最常用的方法,当然,也是最简单朴素的寻debug方法. 在项目中,我们常使用的N ...
- CocoaPods安装和使用
CocoaPods是iOS最常用的第三方类库管理工具,绝大部分有名的开源类库都支持CocoaPods. CocoaPods是用Ruby实现的,要想使用它首先需要有Ruby的环境.幸运的是OS X系统默 ...
- CSS3绘制404页面
标题有点噱了...最近在做一个交通有关的项目, 想做一个类似标志牌的404, 所以就有了这个. 只用的CSS3中的旋转, 效果如下 上代码: <!DOCTYPE html> <htm ...
- Codeforces Round #107 (Div. 2)
D题 并查集+组合 #include <iostream> #include <cstdio> #include <cstring> using namespace ...
- [LintCode] Maximum Depth of Binary Tree 二叉树的最大深度
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- 动态调用WebService(C#) (非常实用)
通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务.这样是使工作简单了,但是却和提供Web服务的URL.方法名 ...