免费注册 查看新帖 |

Chinaunix

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

[自己搞定]FreeBSD 开机自适应网卡DCHP获取 shell [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-19 09:35 |只看该作者 |倒序浏览
本帖最后由 ahyate 于 2011-05-19 10:34 编辑

FreeBSD 8.2

因为有台机器没有显示器, 想弄个bsd进去.

所以,想弄个自适应网卡的shell, 开机的时候,自动运行,识别网卡名称,
然后把网卡dhcp获取ip,如果有多个网卡,就都dhcp

请问这个shell,该如何写呢.

我是这样的,

获取 每个网卡名称: ifconfig -l


然后弄个循环
  1. #!/bin/sh
  2. ListInter=`ifconfig -l`
  3. for inter in $ListInter
  4.     do
  5.         echo $ListInter
  6.         dhclient $ListInter
  7.     done
复制代码
这里有个问题是 想lo0, plip0 这些不需要的网卡,怎么去排除呢....
怎么判断?
是去掉后面的数字,然后判断名称是否匹配定义的 lo plip 不dhcp.如果这样的话, 如何去掉后面的数字呢......好像没有 right() left()截取之类的东西.
还是有别的方法?

算啦.自己搞定,就直接判断名字算了........先凑合用了

论坛徽章:
0
2 [报告]
发表于 2011-05-19 09:43 |只看该作者
ifconfig -l ?? 不知道楼主用的什么系统,我这儿没有这个参数
这样不知道是不是你想要的结果:
ifconfig -a|grep Ethernet|cut -d" " -f1

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
3 [报告]
发表于 2011-05-19 09:45 |只看该作者
什么系统啊?设置网卡dhcp要自己写脚本?

论坛徽章:
0
4 [报告]
发表于 2011-05-19 09:51 |只看该作者
本帖最后由 ahyate 于 2011-05-19 09:52 编辑

FreeBSD 8.2

ifconfig -l 就可以出来网卡列表了

论坛徽章:
0
5 [报告]
发表于 2011-05-19 09:52 |只看该作者
什么系统啊?设置网卡dhcp要自己写脚本?
waker 发表于 2011-05-19 09:45


FreeBSD 开机没设置的话,是不会自动DHCP的啊....

论坛徽章:
0
6 [报告]
发表于 2011-05-19 10:26 |只看该作者
本帖最后由 ahyate 于 2011-05-19 10:33 编辑

谢谢 楼上两位,热心帮助哦.
  1. #!/bin/sh
  2. ListInter=`ifconfig -l`

  3. for inter in $ListInter
  4.   do
  5.     echo $inter   
  6.     echo "========== DHCP $inter ============"
  7.     if [ $inter != "lo0" ] && [ $inter != "plip0" ]; then
  8.       dhclient $inter
  9.     else
  10.       echo "***** Noting *****"
  11.     fi
  12.     echo -e "========== DHCP $inter ============\n\n"
  13.   done
复制代码

论坛徽章:
2
白羊座
日期:2013-10-29 13:29:222015亚冠之全北现代
日期:2015-10-25 08:13:02
7 [报告]
发表于 2011-05-19 11:06 |只看该作者
这里有个问题是 想lo0, plip0 这些不需要的网卡,怎么去排除呢....
怎么判断?


用 mac地址来排除.

论坛徽章:
0
8 [报告]
发表于 2011-05-19 11:39 |只看该作者
本帖最后由 ahyate 于 2011-05-19 11:40 编辑
用 mac地址来排除.
miniqq 发表于 2011-05-19 11:06


那还不如用 flags 来排除.
用up 状态,等网卡状态来排除不是更好....没有up的就不用dhcp获取了

论坛徽章:
0
9 [报告]
发表于 2011-05-19 11:50 |只看该作者
本帖最后由 ahyate 于 2011-05-19 12:00 编辑

...谢谢miniqq 的提示....

不过,在没获取到ip之前...网卡不是UP的...
flags也是8802,获取到IP之后,才是 flags=8843<UP
呃....在研究下
谁有网卡 flags 标志的具体说明呢



  1. #!/bin/sh
  2. ListInter=`ifconfig | grep "flags=8843<UP,BROADCAST,RUNNING" | cut -d":" -f1`

  3. for inter in $ListInter
  4.   do
  5.     echo -e "\n========== DHCP $inter ============"
  6.       dhclient $inter
  7.   done
复制代码

论坛徽章:
0
10 [报告]
发表于 2011-05-19 12:05 |只看该作者
开机的时候,这样就可以了. 不过只能执行一次.
在获取到IP之后, flags就变成8843了
8802是没有IP的状态, 8843就获取到之后
  1. #!/bin/sh
  2. ListInter=`ifconfig | grep "flags=8802" | cut -d":" -f1`

  3. for inter in $ListInter
  4.   do
  5.     echo -e "\n========== DHCP $inter ============"
  6.       dhclient $inter
  7.   done
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP