Chinaunix首页 | 论坛 | 博客
  • 博客访问: 597125
  • 博文数量: 50
  • 博客积分: 4764
  • 博客等级: 上校
  • 技术积分: 597
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-18 09:00
个人简介

资深IT码农,擅长Linux、C/C++、bash

文章分类

全部博文(50)

文章存档

2015年(17)

2014年(2)

2011年(7)

2010年(4)

2009年(20)

分类: 网络与安全

2009-06-01 09:49:24

根据MAC生成唯一IP

冷胜魁(Seaquester)
lengshengkui@gmail.com
2009-5-15

由于某种情况下需要根据MAC地址,给网卡设定唯一的IP,所以,就写了下面一个脚本。

mac2ip.sh:

#!/bin/sh

if [ $# -ne 1 ] ; then
    echo "Usage: `basename $0` "
    exit 1
fi

# We need convert to Uppercase, otherwise the
# bc will reutrn error
MAC=`echo $1 | tr [:lower:] [:upper:]`

ip1=`echo $MAC | awk -F':' '{print $4}'`
ip2=`echo $MAC | awk -F':' '{print $5}'`
ip3=`echo $MAC | awk -F':' '{print $6}'`

ip1=`echo "ibase=16;$ip1"|bc`
ip2=`echo "ibase=16;$ip2"|bc`
ip3=`echo "ibase=16;$ip3"|bc`

echo "$ip1.$ip2.$ip3"
exit 0

mac2ip.sh的使用方式如下:

#!/bin/sh

#!/bin/sh

MAC=`ifconfig eth0 | grep eth0 | awk '{print $5}'`
if [ x"$MAC" == "x" ] ; then
    echo "Invalid MAC address!"
    exit 1
fi

MGMT_IP=`./mac2ip.sh ${MAC}`
MGMT_IP=`echo 10.${MGMT_IP}`

echo $MGMT_IP


阅读(1841) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~