免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4637 | 回复: 10
打印 上一主题 下一主题

批量绑定局域网的ip和mac地址 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-30 10:32 |只看该作者 |倒序浏览
好久没来CU论坛了,想发表一篇关于windows系统上应用linux技术的唠叨!不知道发哪个版块,想想还是发到这里来好了。版主不会删我的贴吧?


最近公司部署ISA代理服务器,需要在ISA代理服务器上绑定局域网的ip和mac地址,但几百台电脑,手动去绑定太麻烦了,不怕,有shell,嘿嘿!

1,从dhcp地址租约中导出列表,保存为dhcplist,如以下形式:

客户端 IP 地址        唯一 ID        名称        租约截止日期        类型        说明
192.168.0.11        000d88486aeb        ISA        保留(不活动的)        无       
192.168.0.13        001aa0093269        huangdongying.Gelin.com        2009-1-6 9:00:56        DHCP       
192.168.0.14        001c251aa409        LFK.yq.baolong.com        2009-1-6 11:27:27        DHCP       
192.168.0.15        001731d0f957        东江        保留(不活动的)        无       


去掉首行抬头和末尾空行
  1. cat dhcplist | sed '1d' | sed '$d' > dhcplist1
复制代码


转换成保留命令格式
  1. cat dhcplist1 | awk '{print "add reservedip "$1 " " $2 " " $3 " \"\" both"}' > baoliu
复制代码


如:
  1. add reservedip 192.168.0.11 000d88486aeb ISA "" both
  2. add reservedip 192.168.0.12 00e04c43cb13 xiaojun "" both
  3. add reservedip 192.168.0.13 001aa0093269 huangdongying.Gelin.com "" both
  4. add reservedip 192.168.0.14 001c251aa409 LFK.yq.baolong.com "" both
复制代码



2,在dhcp服务器上批量保留,便于ip策略的部署。(到控制台把以前的个别保留先全部通通删掉,嘿嘿!)

  1. C:\>netsh     
  2. netsh>dhcp  
  3. dhcp>server 127.0.0.1
  4. dhcp server>mscope 192.168.0.0 ;DHCP作用域
  5. dhcp server mscope>
复制代码


将以上列表复制粘贴到命令行里面,批量保留。


3,生成arp绑定列表

这里用perl写一个添加横线的脚本hx.pl,将mac变成标准格式:

#!/usr/bin/perl


$in=shift;

if($in=~/(.*)\s(\w+)$/)
{
    $b=$1;
    $a=join('-',split(/(\w\w)/,$2));

    $a=~s/^\-//g;
    $a=~s/\-\-/\-/g;

    print "$b $a\n";
}


然后

  1. cat baoliu | awk '{print "arp -s "$3 " " $4}' | while read line
  2. do
  3.         ./hx.pl "$line"
  4. done
复制代码


生成如下列表:
arp -s 192.168.0.11 00-0d-88-48-6a-eb
arp -s 192.168.0.12 00-e0-4c-43-cb-13
arp -s 192.168.0.13 00-1a-a0-09-32-69
arp -s 192.168.0.14 00-1c-25-1a-a4-09
arp -s 192.168.0.15 00-17-31-d0-f9-57


将以上列表批量在ISA服务器命令行执行。

有什么问题,请大家多指教。:wink:

[ 本帖最后由 thatday 于 2008-12-30 10:35 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-12-30 10:34 |只看该作者
支持那哥!!!
不过你有脱裤子放屁嫌疑啊

  1. cat baoliu | awk '{print "arp -s "$3 " "substr($4,1,2)"-"substr($4,3,2)"-"substr($4,5,2)"-"substr($4,7,2)"-"substr($4,9,2)"-"substr($4,11,2)}'  
复制代码

一句搞定


[ 本帖最后由 贺兰云天 于 2008-12-30 10:40 编辑 ]

论坛徽章:
0
3 [报告]
发表于 2008-12-30 10:34 |只看该作者
我是来申请版权的,哈哈

论坛徽章:
0
4 [报告]
发表于 2008-12-30 10:36 |只看该作者
哈哈!我整准备坐个沙发,申明perl是Xti9er兄弟帮忙写的。没想到沙发被继刚占了,郁闷……

论坛徽章:
0
5 [报告]
发表于 2008-12-30 10:40 |只看该作者
原帖由 贺兰云天 于 2008-12-30 10:34 发表
支持那哥!!!

echo  $MAC | awk '{print substr($1,1,2)"-"substr($1,3,2)"-"substr($1,5,2)"-"substr($1,7,2)"-"substr($1,9,2)"-"substr($1,11,2)}'



你这也太笨了嘛!

看我的

cat iplist | awk '{print $4}' | sed 's/../&-/g' | sed  's/.$//'
00-0d-88-48-6a-eb
00-e0-4c-43-cb-13
00-1a-a0-09-32-69

论坛徽章:
0
6 [报告]
发表于 2008-12-30 10:46 |只看该作者
不错!~
写得非常好!~

论坛徽章:
0
7 [报告]
发表于 2008-12-30 10:48 |只看该作者
这个东东完全可以AWK一个搞定,还用Sed,perl.....
你好意思吗

论坛徽章:
0
8 [报告]
发表于 2008-12-30 10:53 |只看该作者
兩個都又不同的特色,

论坛徽章:
0
9 [报告]
发表于 2008-12-30 10:55 |只看该作者
原帖由 贺兰云天 于 2008-12-30 10:48 发表
这个东东完全可以AWK一个搞定,还用Sed,perl.....
你好意思吗


cat baoliu | awk '{print "arp -s "$3 " " substr($4,1,2)"-"substr($4,3,2)"-"substr($4,5,2)"-"substr($4,7,2)"-"substr($4,9,2)"-"substr($4,11,2)}'

这样你不觉得不够艺术?

论坛徽章:
0
10 [报告]
发表于 2008-12-30 11:33 |只看该作者
@ab=<STDIN>=~/(.*)\s(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)(\w\w)$/;

print "$ab[0] $ab[1]-$ab[2]-$ab[3]-$ab[4]-$ab[5]-$ab[6]\n";

这样也不艺术
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP