歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Ubuntu 10.10下撥號上網 超強的Linux下8021x認證源碼

Ubuntu 10.10下撥號上網 超強的Linux下8021x認證源碼

日期:2017/2/28 16:25:39   编辑:Linux教程

學校使用的是8021x認證上網,在Linux下就悲劇了,沒有類似Windows下的認證客戶端。

下載地址在

打包下載在Linux公社FTP裡

FTP地址:ftp://www.6688.cc/

用戶名:www.linuxidc.net

密碼:www.6688.cc

在2010年LinuxIDC.com\12月\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 -h

Ubuntu加入域環境的無線網絡的方法

Copyright © Linux教程網 All Rights Reserved