Shell脚本中获取本机ip地址
1.单网卡
方法1:
#!/bin/sh
local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo "${local_ip}"
命令解释:
ifconfig -a //和window下执行此命令一样道理,返回本机所有ip信息
grep inet //截取包含ip的行
grep -v 127.0.0.1 //去掉本地指向的那行
grep -v inet6 //去掉包含inet6的行
awk { print $2} //$2 表示默认以空格分割的第二组 同理 $1表示第一组
tr -d "addr:" //删除"addr:"这个字符串
方法2:
ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}'
2. 多网卡
当多网卡时,会出现多个不同网段的IP
例如:服务器器有172.17.0.1和172.24.7.44网段的IP,根据不同网段的IP地址打印不同的输出,shell脚本如下:
#!/bin/sh
local_ip=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
echo "${local_ip}"
for var in ${local_ip[@]}
do
echo "多网卡IP:$var"
done
array=(`echo $local_ip | tr '\n' ' '` )
num=${#array[@]} #获取数组元素的个数。
echo "IP数目:$num"
for var in ${array[@]}
do
echo "ip:$var"
done
功能:多网卡时,根据序号选择对应的IP地址
#!/bin/sh
function getIpAddr(){
# 获取IP命令
ipaddr=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
array=(`echo $ipaddr | tr '\n' ' '` ) # IP地址分割,区分是否多网卡
#array=(172.20.32.214 192.168.1.10);
num=${#array[@]} #获取数组元素的个数
# 选择安装的IP地址
if [ $num -eq 1 ]; then
#echo "*单网卡"
local_ip=${array[*]}
elif [ $num -gt 1 ];then
echo -e "\033[035m******************************\033[0m"
echo -e "\033[036m* 请选择安装的IP地址 \033[0m"
echo -e "\033[032m* 1 : ${array[0]} \033[0m"
echo -e "\033[034m* 2 : ${array[1]} \033[0m"
echo -e "\033[035m******************************\033[0m"
#选择需要安装的服务类型
input=""
while :
do
read -r -p "*请选择安装的IP地址(序号): " input
case $input in
1)
local_ip=${array[0]}
#echo "选择网段1的IP为:${local_ip}"
break
;;
2)
local_ip=${array[1]}
#echo "选择网段2的IP为:${local_ip}"
break
;;
*)
echo "*请输入有效的数字:"
;;
esac
done
else
echo -e "\033[31m*未设置网卡IP,请检查服务器环境! \033[0m"
exit 1
fi
}
# 校验IP地址合法性
function isValidIp() {
local ip=$1
local ret=1
if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
ip=(${ip//\./ }) # 按.分割,转成数组,方便下面的判断
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
ret=$?
fi
return $ret
}
local_ip=''
getIpAddr #自动获取IP
isValidIp ${local_ip} # IP校验
if [ $? -ne 0 ]; then
echo -e "\033[31m*自动获取的IP地址无效,请重试! \033[0m"
exit 1
fi
echo "*选择安装的IP地址为:${local_ip}"
获取IP地址:
代码如下:
ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-
shell常用命令有哪些
1.rm指删除文件;2.echo是指显示指定文本;3.cat 文件名,输出文件内容到基本输出;4.cb,格式化源代码;5.date,当前的时间和日期
————————————————
版权声明:本文为CSDN博主「Word哥」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/finghting321/article/details/108476650
Shell脚本中获取本机ip地址相关推荐
- 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 ...
- Shell脚本中获取本机ip地址,Linux获取本地ip地址
在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...
- 前端Vue中获取本机ip地址
前端Vue中获取本机ip地址 1.打开谷歌浏览器,地址栏输入chrome://flags,进入. 2.搜索Anonymize local IPs exposed by WebRTC,将其设置为Disa ...
- shell脚本中获取当前所在目录地址
shell脚本中获取当前所在目录如下 #!/bin/bashwork_path=$(dirname $0) cd ${work_path} work_path=$(pwd) cd ${work_pat ...
- Unity中获取本机IP地址的方法
做OptiTrack局域网数据通信时,需要设置本地IP和动捕数据服务器IP,来实现获取动捕数据.由于局域网搭建时需要手动设置电脑IP,因此想到如果可以获取本机IP,服务器IP通常设置固定后不会更改,如 ...
- shell中获取本机ip地址
方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:& ...
- C#中获取本机IP地址,子网掩码,网关地址
首先添加对程序集System.Management的引用 using System; using System.Management; namespace ConsoleApplication1 { ...
- java获取本机ip地址_代码片段:获取系统所有IP
问题 在Windows系统中,可以支持多个网卡,比如有线的以太网卡,无线网卡,虚拟网卡等.如下图所示: 每一张网卡由不同的类型,也可以分别被用户启用或禁用. 对于单独一张给定的网卡,其IP地址可以是D ...
- Linux下 shell获取本机ip地址
方法二 /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6 | awk '{print $2}' | tr -d "add ...
最新文章
- excel增加上一列的数值(日期)
- HibernateSessionFactory的用法
- 用MODELLER构建好模型后对loop区域进行自动的优化过程
- pytorch和Numpy的区别以及相互转换
- android lk DEFINES定义的环境变量的值
- MATLAB图像函数以及应用(第六章)边界问题
- collections python_python: collections
- 加密软件漏洞评测系统_所有雷电接口电脑5分钟内即可破解,漏洞无法软件修复,微软Surface笑了...
- 前端学习(1928)vue之电商管理系统电商系统之美化一层循环的UI结构for循环ui美化
- 【Modern OpenGL】坐标系统 Coordinate Systems
- 云服务器文件传输问题
- 产业链人士:台积电将同设备及原材料供应商谈判,希望明年降价15%
- 11g表名大小写 oracle_oracle表名、字段名大小写问题。
- mysql之查询前几条或者中间某几行数据
- CTF知识总结--MISC
- 服务器主板维修教学视频,第60讲 超微服务器主板远程管理讲解与演示
- 布置工作五步法,让工作布置跟高效
- sql左连接查询,去重复数据
- Instagram后端架构
- 四, Scala 伴生对象, 特质