编写shell脚本获取本机的网络地址?

2024-12-21 16:39:32
推荐回答(5个)
回答1:

问题有问题,本机的ip地址是:192.168.100.2/255.255.255.0,网络地址应该是192.168.100.0/255.255.255.0。默认的网关地址才是192.168.100.1/255.255.255.0。
一个超笨的办法:
在脚本里写入:
netid=`ifconfig eth0 | grep "inet addr" | cut -d ":" -f 2 | cut -d " " -f 1 | cut -d "." -f 1-3`
echo $netid.0
就可以显示一个IP地址了,这个IP地址就是你本机所在网络的网络地址。当然,这是以掩码是24位且你的网卡是eth0为前提的。注意第二个cut -d 后面的引号里面有空格。

回答2:

hostname -i显示本机ip地址
再去查看/etc/sysconfig/network-script/下面的ifcfg文件
找到NETMASK
或者用这条命令
cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep ^NETMASK|cut -d = -f 2
直接获取mask掩码
然后编写shell脚本
#!/bin/bash
hostname -i
cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep ^NETMASK|cut -d = -f 2
希望对你有帮助

回答3:

给一个你
[root@dns4 ~]# vim ip.sh
ip=$(ifconfig | grep "inet addr" | grep -v 127.0.0.1 | awk '{print $2}' | awk -F ':' '{print $2}')
echo "本机IP地址是:$ip"
[root@dns4 ~]# ./ip.sh
本机IP地址是:192.168.1.123

回答4:

#! /bin/bash
read -p "请输入指定网卡名称/ALL是所有:" a
if [ $a==ALL] ; then
ifconfig |grep "inet addr:"|awk -F : '{print $2}'|awk '{print $1}'
else
ifconfig $a |grep "inet addr:"|awk -F : '{print $2}'|awk '{print $1}'
fi

回答5:

我只会笨办法
ifconfig lo | sed -n -r 's/.*inet (([0-9]{1,3}\.?){4}).*netmask (([0-9]{1,3}\.?){4}).*/\1\/\3/p'