免费注册 查看新帖 |

Chinaunix

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

自动连接无线网(slackware linux wlan ) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-29 22:06 |只看该作者 |倒序浏览
使用方法:
将公司的
无线
密码固化到下面的代码中去
不带参数运行会获取质量最好的一个essid并连接
或跟上参数 ./wlanStart your_essid
或 ./wlanStart your_essid your_key
源码如下(记得修改其中你的密码):
!/bin/sh
eth="eth1"
essid=$1
key=$2
#ipw=`ps -aux 2>/dev/null | grep ipw3945d | grep -v grep | head -1 | awk '{print $1}'`
if [ -f /var/run/ipw3945d.pid ]
then
        :
        echo "Device is startup"
else
        #Startup wireless device
        echo "Device haven't startup,startup it now..."
        /sbin/ipw3945d
        active_flag=`/sbin/iwlist ${eth} scan | wc -l`
        i=0
        while [ $i -le 10 ]
        do
                if [ $active_flag -le 10 ]
                then
                        active_flag=`/sbin/iwlist ${eth} scan | wc -l`
                        sleep 2
                else
                        i=10
                fi
                i=$(($i+1))
        done
        echo "Sleep $i seconds"
fi
if [ $essid ]
then
        :
else
        #Grep essid
        essids=`/sbin/iwlist ${eth} scan 2>/dev/null | grep "Mode:Master" -B 2 | grep ESSID | cut -d '"' -f 2 | xargs -n 100`
        newessid=`echo $essids | cut -d ' ' -f 1`
        ldquality=0
        for curessid in $essids
        do
                quality=`/sbin/iwlist ${eth} scan 2>/dev/null | \
                        grep ESSID:\"$curessid\" -A 10 | \
                        grep -P "Quality=\d+" -o | \
                        awk -F = '{print \$2}'`
                if [ $quality -ge $oldquality ]
                then
                        newessid=$curessid
                        ldquality=$quality
                fi
        done
        essid=$newessid
        if [ $essid ]
        then
                echo "Use default ESSID $essid , quality ${oldquality}/100 "
        else
                echo "Can not found activited ESSID!!"
                echo "Please specify the essid manualy!"
                exit
        fi
fi
if [ $key ]
then
        echo $key
else
        key="公司的无线密码"
fi
/sbin/ifconfig ${eth} down
/sbin/ifconfig ${eth} up
/sbin/iwconfig ${eth} essid $essid
#grep encrytion flag
enc=`/sbin/iwlist ${eth} scan 2>/dev/null | grep "$essid" -A 4 | tail -1 | cut -d : -f 2`
if [ "$enc" == "on" ]
then
        echo "Encrytion on"
        /sbin/iwconfig ${eth} key $key
else
        echo "Encrytion off"
        /sbin/iwconfig ${eth} key off
fi
if [ -f /etc/dhcpc/dhcpcd-${eth}.pid ]
then
        killall dhcpcd
fi
/sbin/dhcpcd ${eth}


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81599/showart_1914620.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP