Welcome 微信登录

首页 / 操作系统 / Linux / Ubuntu 10.10下拨号上网 超强的Linux下8021x认证源码

学校使用的是8021x认证上网,在Linux下就悲剧了,没有类似Windows下的认证客户端。下载地址在打包下载在Linux公社FTP里FTP地址:ftp://www.6688.cc/用户名:www.linuxidc.net密码:www.6688.cc在2010年LinuxIDC.com12月Ubuntu 10.10下拨号上网 超强的Linux下8021x认证源码
以下是学校某个大神写的源代码,先记下来以后研究/#!/bin/bash#电子科技大学清水河校区上网认证脚本
#版本:1.01 Alaph
#作者:LiLi
#GPL Licence
#2009年3月7日#初始化默认文件路径和网络接口
LAN_CONF=${HOME}/.lan.conf #默认的局域网配置文件路径
INTERNET_CONF=${HOME}/.internet.conf #默认的外网配置文件路径
NETWORK_INTERFACE=eth0 #默认的网络接口
CONF=$LAN_CONF #脚本将要处理的配置文件,默认为局域网配置文件
CONF_FLAG=0 #用0表示局域网配置文件,1表示因特网配置文件,2表示用户指定的配置文件
LOG=${HOME}/.my-8021-net.log #简单的日志文件#设定退出错误号
OK=0 #正常退出
SYNTAX_ERROR=1 #语法错误
CANNOT_GET_IP=2 #无法获取IP
NO_FILE=3 #找不到文件
TEST_ERROR=4 #测试时的错误,在实际使用中不会遇到#断开网络的函数
logoff()
{
    wpa_cli logoff > /dev/null 2>&1 #下线
    wpa_cli terminate > /dev/null 2>&1 #关闭进程
    dhclient -r $NETWORK_INTERFACE > /dev/null 2>&1 #释放IP
}#帮助信息
return_help()
{
    echo "这是LiLi写的清水河上网脚本"
    echo "    -h : 返回这个帮助信息"
    echo "    -i : 网卡接口,默认为eth0"
    echo "    -l : 连接局域网,为默认方式"
    echo "    -w : 连接因特网"
    echo "    -c : 指定配置文件连网"
    echo "    -d : 断网"
    echo "    -L : 重新生成内网配置文件"
    echo "    -W : 重新生成外网配置文件"
    echo "     -s : 查询当前连接状态"
    echo "    -a : 查看通过此脚本上网的日志"
    echo "    -A : 清除日志文件"
    echo "以默认方式上内网可以不接任何选项参数"
}
#初始化配置文件的函数,需要区分内网和外网的配置文件
init_configure()
{
    echo "请输入你的用户名:"
    read USER_NAME
    echo "请输入密码:"
    read USER_PASSWD
    echo "正在初始化……"
    echo "ctrl_interface=/var/run/wpa_supplicant" > $1
    echo "#ctrl_interface_group=wheel" >> $1
    echo "ap_scan=0" >> $1
    echo "network={" >> $1
    echo "    key_mgmt=IEEE8021X" >> $1
    echo "    eap=MD5" >> $1
    if [ $2 = 0 ]
    then
        echo "    identity="$USER_NAME@local"" >> $1
    else
    echo "    identity="$USER_NAME"" >> $1
    fi
    echo "    password="$USER_PASSWD"" >> $1
    echo "    eapol_flags=0" >> $1
    echo "}" >> $1
    echo "初始化完成"
    chmod 000 $1 # 保证账号的安全
}show_state() #显示当前连接状态
{
    ps aux | grep wpa_supplicant | grep -v grep > /dev/null #有无认证进程
    if [ $? = 0 ]
    then
        cIP=`ifconfig $NETWORK_INTERFACE | grep "inet " | awk {"print $2"} | awk -F: {"print $2"}`
        echo "已向系统提交认证,$NETWORK_INTERFACE 的IP是$cIP "
    else
        echo "未通过8021认证连接网络"
    fi
}while getopts ":hi:lwc:dLWsaA" Option #对选项的处理
do
    case $Option in
    h ) return_help && exit $OK;;
    i ) NETWORK_INTERFACE=$OPTARG;;
    l ) CONF=$LAN_CONF && CONF_FLAG=0;;
    w ) CONF=$INTERNET_CONF && CONF_FLAG=1;;
    c ) CONF=$OPTARG && CONF_FLAG=2;;
    d ) logoff && echo "网络已断开" && exit $OK;;
    L ) init_configure $LAN_CONF 0  && exit $OK;;
    W ) init_configure $INTERNET_CONF 1 && exit $OK;;
    s ) show_state && exit $OK;;
    a ) cat $LOG && exit $OK;;
    A ) echo > $LOG && exit $OK;;
    esac
done#是否已经提交wpa认证,如果是,将中断原有进程
ps aux | grep wpa_supplicant | grep -v grep > /dev/null
if [ $? = 0 ]
then
    logoff
fi以管理员身份运行都行了,文件名保存为connet,先添加执行权限,然后管理员身份运行,sudo connet具体参数源码里有,也可以sudo connet -hUbuntu加入域环境的无线网络的方法Linux内核模块配置文件Linux下的History命令高级实用相关资讯      Ubuntu 10.10 
  • Ubuntu 10.10下月起停止更新  (03/12/2012 15:39:45)
  • Ubuntu 10.10安装使用VNC  (10/29/2011 13:13:05)
  • 在Ubuntu 10.10上安装LAMP  (07/18/2011 09:19:11)
  • Ubuntu 10.10与Fedora 14下使用scp  (11/15/2011 16:03:56)
  • Ubuntu 10.10用LibreOffice替换  (08/10/2011 19:53:36)
  • Ubuntu 10.10同步CyanogenMod源码  (07/06/2011 17:59:10)
本文评论 查看全部评论 (0)
表情: 姓名: 字数